Context switches are handled by the linux kernel that is running on the simulator. When it gets an interrupt (timer) it checks if it needs to context switch and does.
The kernel is going to set up softIRQs for itself, if you wanted to trigger one from the simulator you’d either need to go spelunking into the kernel data structures to set that a softIRQ was pending or provide some interface in the kernel the simulator could easily use. The hardware IRQs are simulated by an interrupt controller (in the case of ARM one of the GIC models present). The best way to set something up to is to take a disk image, mount it on a real machine and edit to to your hearts content. If you’re using ARM and doesn’t have an ARM machine the qemu-user-static package from ubuntu can be used to run bash and install/modify the file system (see http://www.gem5.org/Ubuntu_Disk_Image_for_ARM_Full_System). If you want to do it within the simulator you need to remove the Copy-on-write (COW) Disk from the configuration and make sure to sync and properly shut down the simulated guest, otherwise your changes may be lost. Ali On Jul 1, 2014, at 6:08 PM, Roger Smith via gem5-dev <gem5-dev@gem5.org> wrote: > Hi Andreas, > > I am wondering: > > a. In the full system emulation mode: > How and when are context switches handled by the simulator? > How can one access the SoftIRQ and HardIRQ lines? > b.How to save stuff so next time the full system mode. > ie, if applications are installed, how can they be available after a > reboot? > If a kernel service is modified inside the simulator, how is the > modification saved? > > > Cheers, > Roger > > > ********************************************************************************** > > > > > -- > _______________________________________________ > gem5-dev mailing list > gem5-dev@gem5.org > http://m5sim.org/mailman/listinfo/gem5-dev > _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev