[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] softirq bound to vcpus



In "Understanding the Linux Kernel" 3rd edition, section 4.7 "Softirqs and
Tasklets" it states: 

"Activation and execution [of defferable functions] are bound together: a
deferrable function that has been activated by a given CPU must be executed on
the same CPU. There is no self-evident reason suggesting that this rule is
beneficial for system performance. Binding the deferrable function to the
activating CPU could in theory make better use of the CPU hardware cache. After
all, it is conceivable that the activating kernel thread accesses some data
structures that will also be used by the deferrable function. However, the
relevant lines could easily be no longer in the cache when the deferrable
function is run because its execution can be delayed a long time. Moreover,
binding a function to a CPU is always a potentially "dangerous" operation,
because one CPU might end up very busy while the others are mostly idle."

I think in Xen, the same approach is taken from what I can tell (softirq_pending
is keyed by cpu, used both in activation (cpu_raise_softirq) and execution
(do_softirq)).

Is there room for optimization here?  I'm looking at Xen's softirq mechanism and
just noticed this, that's all.  I have no performance data or anything.  In Xen,
when would the hardware cache situation in the quote above generally have a real
effect?  Are there any particularly large data structures accessed with
defferable functions in Xen?

Tim 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.