aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/softirq.h
Commit message (Collapse)AuthorAgeFilesLines
* xen: move for_each_set_bit to xen/bitops.hStefano Stabellini2013-05-081-1/+1
| | | | | | | | Move for_each_set_bit from asm-x86/bitops.h to xen/bitops.h. Replace #include <asm/bitops.h> with #include <xen/bitops.h> everywhere. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Keir Fraser <keir@xen.org>
* force inclusion of xen/config.h through compiler optionJan Beulich2012-01-131-1/+0
| | | | | | | | | | | | | As we expect all source files to include the header as the first thing anyway, stop doing this by repeating the inclusion in each and every source file (and in many headers), but rather enforce this uniformly through the compiler command line. As a first cleanup step, remove the explicit inclusion from all common headers. Further cleanup can be done incrementally. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* convert more literal uses of cpumask_t to pointersJan Beulich2011-09-181-1/+1
| | | | | | | This is particularly relevant as the number of CPUs to be supported increases (as recently happened for the default thereof). Signed-off-by: Jan Beulich <jbeulich@suse.com>
* tasklets: Allow tasklets to be created that run in softirq context.Keir Fraser2011-06-161-0/+1
| | | | | | | Where this is safe, it can reduce latency and cpu overhead compared with scheduling the idle vcpu to perform the same tasklet work. Signed-off-by: Keir Fraser <keir@xen.org>
* Remove unused PAGE_SCRUB_SOFTIRQ definition.Keir Fraser2010-05-141-1/+0
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* stopmachine: Implement using tasklets rather than a softirq.Keir Fraser2010-04-191-1/+0
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Implement tasklets as running in VCPU context (sepcifically, idle-VCPU context)Keir Fraser2010-04-191-1/+0
| | | | | | | | ...rather than in softirq context. This is expected to avoid a lot of subtle deadlocks relating to the fact that softirqs can interrupt a scheduled vcpu. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Move tasklet implementation into its own source files.Keir Fraser2010-04-191-24/+0
| | | | | | | | This is preparation for implementing tasklets in vcpu context rather than softirq context. There is no change to the implementation of tasklets in this patch. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Per-cpu tasklet lists.Keir Fraser2010-04-141-2/+4
| | | | | Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Replace process_pending_timers() with process_pending_softirqs().Keir Fraser2009-12-221-0/+7
| | | | | | | | | This ensures that any critical softirqs are handled in a timely manner (e.g., TIME_CALIBRATE_SOFTIRQ) while still avoiding being preempted by the scheduler (by SCHEDULE_SOFTIRQ), which is the reason for avoiding use of do_softirq() directly. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* passthrough: use tasklet to deliver interruptsKeir Fraser2009-07-281-23/+3
| | | | | | | | | This patch enables delivery of interrupts even if the VCPU#0 is halted. Note: the changes to softirq.{ch} are needed for ia64 build. Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
* Pass cpumasks by reference always.Keir Fraser2009-05-271-1/+1
| | | | | | | | | | | | | Rather than passing cpumasks by value in all cases (which is problematic for large NR_CPUS configurations), pass them 'by reference' (i.e. through a pointer to a const cpumask). On x86 this changes send_IPI_mask() to always only send IPIs to remote CPUs (meaning any caller needing to handle the current CPU as well has to do so on its own). Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Tasklet bug fixes.Keir Fraser2008-04-151-1/+2
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Change tasklet implementation so that tasklet_kill() does not have toKeir Fraser2008-04-151-2/+2
| | | | | | | | busy-wait for softirq work to start. This reduces the possibility of deadlocks, but the implementation is now less efficient. For the current few users of tasklets this does not matter. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Turn some simple softirqs into tasklets.Keir Fraser2008-04-111-3/+0
| | | | | | TRACE_SOFTIRQ does not appear to be necessary at all. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Support tasklets in Xen as a more dynamic alternative to softirqs.Keir Fraser2008-04-111-21/+40
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Rendezvous selected cpus in softirq (stop_machine).Keir Fraser2008-02-111-1/+2
| | | | | | | | | | | | | This is similar to stop_machine_run stub from Linux, to pull selected cpus in rendezvous point and the do some batch work under a safe environment. Current one usage is from S3 path, where individual cpu is pulled down with related online footprints being cleared. It's dangerous to have other cpus checking clobbered data structure in the middle, such as cpu_online_map, cpu_sibling_map, etc. Signed-off-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Add RCU support to Xen.kaf24@localhost.localdomain2007-01-261-1/+2
| | | | Signed-off-by: Jose Renato Santos <jsantos@hpl.hp.com>
* [XEN] Arch-specific softirq definitions.kfraser@localhost.localdomain2006-11-301-1/+6
| | | | Signed-off-by: Alex Williamson <alex.williamson@hp.com>
* [XEN] Simplify domain shutdown -- no need to synchronously halt execution.kaf24@localhost.localdomain2006-11-041-3/+2
| | | | | | | | | | | This avoids a possible deadlock on the per-domain 'big lock'. No control tools depend on synchronous halting of execution (e.g., save/restore already expect that secondary CPUs were halted synchronously under the control of the guest itself). This makes the code rather less complex. Signed-off-by: Keir Fraser <keir@xensource.com>
* New weighted fair-share CPU scheduler w/ automatic SMP load balancingack@kneesa.uk.xensource.com2006-05-261-0/+13
| | | | | Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
* Added trace buffer virtual irq to implement non-polling trace record access.kaf24@firebug.cl.cam.ac.uk2006-04-081-1/+2
| | | | | Signed-off-by: Rob Gardner <rob.gardner@hp.com>
* Rename ac_timer_* interfaces -> timer_*. The ac_ iskaf24@firebug.cl.cam.ac.uk2006-01-121-1/+1
| | | | | | | | | | meaningless and unnecessary. Rename rem_timer -> stop_timer. Signed-off-by: Keir Fraser <keir@xensource.com>
* Pass NMIs to DOM0 via a dedicated callback, core Xen support.Ian.Campbell@xensource.com2006-01-111-1/+1
| | | | | | | | | | | | | This patch adds core and generic x86 support code to enable Xen to pass NMI's to a dedicated NMI callback in DOM0 instead of raising a VIRQ. Introduces the nmi_op hypercall to allow DOM0 to (un)register the NMI handler. Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
* Allow unknown NMIs to be propagated to domain0 via newkaf24@firebug.cl.cam.ac.uk2005-12-201-1/+1
| | | | | | | | | | | | VIRQ_NMI. Also simplify x86_32 NMI handling -- there's no need to greedily consume IO/parity errors in assembly code as they can be deferred without causing an interrupt storm (the NMI pin is always edge-triggered even though the sources are level-asserted). Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1653 (429f7931iJ8kgS9qBlBbtyY9irorQA)cl349@firebug.cl.cam.ac.uk2005-06-021-0/+1
| | | | | | | Many files: More include cleanups towards "include where it's used". Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
* bitkeeper revision 1.1628 (429dc9b7MTwsBkscbFS1sK8SbwJhdg)kaf24@firebug.cl.cam.ac.uk2005-06-011-1/+2
| | | | | | | | Fix domain shutdown so that the new status, and notification to domain0, occur *after* the domain is fully descheduled and its execution state synchronised. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1159.272.8 (4240716dixo5jLBihZPvbRrP21dn4g)kaf24@firebug.cl.cam.ac.uk2005-03-221-1/+2
| | | | | | | Schedule page scrubbing for dead domains off the per-cpu periodic ticker. We take 10% of busy cpus and all of idle cpu time. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1159.1.320 (4186495166A8XLekEbNixl7hWUA08w)kaf24@freefall.cl.cam.ac.uk2004-11-011-6/+6
| | | | | | Clean up softirq handling. All debug keypresses are now deferred to a softirq handler.
* bitkeeper revision 1.1159.69.21 (413c9be3ZggtSn3FWCDWCAl_6chs9w)iap10@labyrinth.cl.cam.ac.uk2004-09-061-1/+2
| | | | | | | | keyhandler to perform a debug audit of domain memory, checking the page type and counts are consistent with the pagetable state. Its quite verbose and prints out details of all interesting pages. (e.g. pages shared between domains or used for LDT/GDTs).
* bitkeeper revision 1.1108.33.42 (410f6f3aRsLN-XTc0i2kCrGt2plvhw)kaf24@scramble.cl.cam.ac.uk2004-08-031-11/+11
| | | | | | | | | More NMI-handling cleanups. Users now have an option of what to do with an error NMI by specifying 'nmi=xxx' on Xen's cmdline. 'nmi=dom0' -> Tell DOM0 about it (DOM0 currently ignores it). 'nmi=ignore' -> ignore it 'nmi=fatal' -> print a diagnostic and then hang.
* bitkeeper revision 1.993 (40d6a9ddBgr-KXWbCA_-rEDpeCQHQw)kaf24@scramble.cl.cam.ac.uk2004-06-211-0/+3
| | | | | Fix pdb.
* bitkeeper revision 1.983 (40d46e62pNngJp16CZ2sqZwmplr_Kw)kaf24@scramble.cl.cam.ac.uk2004-06-191-0/+34
More cleanups.