<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest">
    <title>gmane.linux.kernel.virtualization.lguest</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/660"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/656"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/655"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/653"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/652"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/646"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/645"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/644"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/643"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/642"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/641"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/640"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/639"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/638"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/637"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/636"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/635"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/634"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/633"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/632"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/660">
    <title>Re: [PATCH 2/2] kvm-s390: implement config_changed forvirtio on s390</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/660</link>
    <description>
Thanks, both applied.

Rusty.
</description>
    <dc:creator>Rusty Russell</dc:creator>
    <dc:date>2008-11-18T14:34:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/656">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/656</link>
    <description>
The reason for the multiple curves is to show the range of uncertainty.

There are three sets of graphs in there: black (current mainline,
16-byte stubs), red (4-byte stubs with a double jump), and blue (8-byte
stubs.)

The fact that the system is idle is pretty much a case which should
favor "blue" over "red"; realistically I think the graphs show that they
are identical within the limits of measurement, and both are
significantly better than "black".

Since this is pretty much the optimal case for "blue" and it doesn't
show any performance win over "red", I implemented the "red" option and
pushed it into tip:x86/irq.


Same here, which is why I wanted to check them both out.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-14T03:22:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/655">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/655</link>
    <description>
Still confused. If, say, the top blue line on the left represents the
same number of interrupts as the bottom red one, then at some point it
must cross under the red one as it goes to the right, which it does not
appear to do. Thus, it does not appear the scale on the left is actually
in units of constant probability, no?

Though I'll agree that even if they're not scaled so that the area under
the curve sums to a probability of 1, the centerpoint of the vertical
drop is what matters. But that's rather hard to read off this chart, as
the blue line I mentioned has a center point point well above the red
one, so while it looks like a shift of 80 cycles, it's more like 30.

Is there any theoretical reason you can't just sum the histograms for
runs of the same code and then divide by event count? Is there some sort
of alignment/cache-coloring issue across boots?


That's what I'd expect on an idle system, certainly.

Anyway, I'm actually surprised your red graph is visibly better than
your blue one. FWIW, I was</description>
    <dc:creator>Matt Mackall</dc:creator>
    <dc:date>2008-11-14T02:29:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/653">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/653</link>
    <description>
Last I heard it was still a dozen-ish cycles even on Nehalem.


Even if a CPU came out *today* that had zero-cost locks we'd have to
worry about it for at least another 5-10 years.  The good news is that
we're doing pretty good with it for now, but I don't believe in general
we can avoid the fact that improving LOCK performance helps everything
when you're dealing with large numbers of cores/threads.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-14T01:20:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/652">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/652</link>
    <description>
No, they reflect individual runs.  They start at 1 at the top left and
drop to 0 at the far right in each case.  What matters is the horizontal
position of large vertical drops.


All interrupts, but rather inherently the difference between interrupt
handlers is going to be bigger than the differences between
implementations of the same handler.  I *believe* all the interrupts
you're seeing in that graph are probably timer interrupts.  The other
major interrupt source that was active on the system was USB.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-14T01:18:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/646">
    <title>work</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/646</link>
    <description>Hello!

I'd like to ask if I can go on with my lguest to-do list or if PAE is
causing any problems (if this is the case, please let me know and I'll
 try to fix it).

regards
Matias
</description>
    <dc:creator>Matias Zabaljauregui</dc:creator>
    <dc:date>2008-11-11T14:13:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/645">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/645</link>
    <description>
* Alexander van Heukelum &lt;heukelum-97jfqw80gc6171pxa8y+qA&lt; at &gt;public.gmane.org&gt; wrote:


a high-pass filter should be applied in any case, to filter out the 
"nothing happened" baseline. Eliminating every delta below 500-1000 
cycles would do the trick i think, all IRQ costs are at least 1000 
cycles.

then a low-pass filter should be applied to eliminate non-irq noise 
such as scheduling effects or expensive irqs (which are both 
uninteresting to such analysis).

and then _that_ double-filtered dataset should be normalized: the 
number of events should be made the same. (just clip the larger 
dataset to the length of the smaller dataset)


i was only looking at before/after duos, for the same basic type of 
workload. Idle versus hackbench is indeed apples to oranges.

Ingo
</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-11-11T09:54:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/644">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/644</link>
    <description>Okay, after spending most of the day trying to get something that isn't
completely like white noise (interesting problem, otherwise I'd have
given up long ago) I did, eventually, come up with something that looks
like it's significant.  I did a set of multiple runs, and am looking for
the "waterfall points" in the cumulative statistics.

http://www.zytor.com/~hpa/baseline-hpa-3000-3600.pdf

This particular set of data points was gathered on a 64-bit kernel, so I
didn't try the segment technique.

It looks to me that the collection of red lines is enough to the left of
the black ones that one can assume there is a significant effect,
probably by about a cache miss worth of time.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-11T05:00:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/643">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/643</link>
    <description>
Okay, I've stared at a bunch of different transformations of this data
and I'm starting to think that it's getting lost in the noise.  The
difference between your "idleticks" and "idleticks2" data sets, for
example, is as big as the differences between any two data sets that I
can see.

Just for reference, see this graph where I have filtered out events
outside the [30..1000] cycle range and renormalized.

http://www.zytor.com/~hpa/hist.pdf

I don't know how to even figure out what a realistic error range looks
like, other than repeating each run something like 100+ times and do an
"eye chart" kind of diagram.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-10T23:34:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/642">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/642</link>
    <description>
I believe you need to remove the obvious null events at the low end (no
interrupt happened) and renormalize to the same scale for the histograms
to make sense.

As it is, the difference in the number of events that actually matters
dominate the graphs; for example, there are 142187 events &gt;= 12 in
hack10ticks, but 136533 in hack10ticks_hpa.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-10T22:21:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/641">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/641</link>
    <description>
On Mon, 10 Nov 2008 07:39:22 -0800, "H. Peter Anvin" &lt;hpa-YMNOUZJC4hwAvxtiuMwx3w&lt; at &gt;public.gmane.org&gt;
said:

I did the rdtsctest again for the irqstubs patch you sent. The data
is at http://heukelum.fastmail.fm/irqstubs/ and the latency histogram
is http://heukelum.fastmail.fm/irqstubs/latency_hpa.png

Greetings,
    Alexander

</description>
    <dc:creator>Alexander van Heukelum</dc:creator>
    <dc:date>2008-11-10T21:44:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/640">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/640</link>
    <description>On Mon, 10 Nov 2008 14:07:09 +0100, "Ingo Molnar" &lt;mingo-X9Un+BFzKDI&lt; at &gt;public.gmane.org&gt; said:

I thought so ;).


The total number of measured intervals (between two almost-adjacent
rdtsc's) is exactly the same for all histograms (10^10). Almost all
measurements are of the "nothing happened" type, i.e., around 11
clock cycles on this machine. The user time spent inside the
rdtsctest program is almost independent of the load, but it
measures time spent outside of the program... But what should be
attributed to what effect is unclear to me at the moment.


Basically the difference between the "idle" and "hack10" versions
should indicate the effect of extra interrupts (timer) and additional
exceptions and cache effects due to context switching.

Thanks,
    Alexander

</description>
    <dc:creator>Alexander van Heukelum</dc:creator>
    <dc:date>2008-11-10T21:35:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/639">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/639</link>
    <description>
For what it's worth, I tested this out, and I'm pretty sure you need to
run a uniprocessor configuration (or system) for it to make sense --
otherwise you end up missing too many of the interrupts.  I first tested
this on an 8-processor system and, well, came up with nothing.

I'm going to try this later on a uniprocessor, unless Alexander beats me
to it.

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-10T15:39:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/638">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/638</link>
    <description>
* Alexander van Heukelum &lt;heukelum-97jfqw80gc6171pxa8y+qA&lt; at &gt;public.gmane.org&gt; wrote:


yeah, sorry! You describe and did exactly the kind of histogram that i 
wanted to see done ;-)

I'm not sure i can read out the same thing from the result though. 
Firstly, it seems the 'after' histograms are better, because there the 
histogram shifted towards shorter delays. (i.e. lower effective irq 
entry overhead)

OTOH, unless i'm misreading them, it's a bit hard to compare them 
visually: the integral of the histograms does not seem to be constant, 
they dont seem to be normalized.
 
It should be made constant for them to be comparable. (i.e. the total 
number of irq hits profiled should be equal - or should be normalized 
with the sum after the fact)

Ingo
</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-11-10T13:07:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/637">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/637</link>
    <description>On Mon, 10 Nov 2008 09:58:46 +0100, "Ingo Molnar" &lt;mingo-X9Un+BFzKDI&lt; at &gt;public.gmane.org&gt; said:

Hi Ingo,

I guess you just stopped reading here?


I should have presented the second benchmark as the first I
guess. I really just used hackbench as a workload. I gathered
it would give a good amount of exceptions like page faults and
maybe others. It would be nice to have a simple debug switch in
the kernel to make it generate a lot of interrupts, though ;).


See the rest of the mail you replied to and its attachment. I've put
the programs I used and the histogram in

http://heukelum.fastmail.fm/irqstubs/

I think rdtsctest.c is pretty much what you describe.

Greetings,
    Alexander

</description>
    <dc:creator>Alexander van Heukelum</dc:creator>
    <dc:date>2008-11-10T12:44:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/636">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/636</link>
    <description>
* Alexander van Heukelum &lt;heukelum-97jfqw80gc6171pxa8y+qA&lt; at &gt;public.gmane.org&gt; wrote:


hackbench is _way_ too noisy to measure such cycle-level differences 
as irq entry changes cause. It also does not really stress interrupts 
- it only stresses networking, the VFS and the scheduler.

a better test might have been to generate a ton of interrupts, but 
even then it's _very_ hard to measure it properly. The best method is 
what i've suggested to you early on: run a loop in user-space and 
observe irq costs via RDTSC, as they happen. Then build a histogram 
and compare the before/after histogram. Compare best-case results as 
well (the first slot of the histogram), as those are statistically 
much more significant than a noisy average.

Measuring such things in a meaningful way is really tricky business. 
Using hackbench to measure IRQ entry micro-costs is like trying to 
take a photo of a delicate flower at night, by using an atomic bomb as 
the flash-light: you certainly get some sort of effect to report, but</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-11-10T08:58:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/635">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/635</link>
    <description>
Hi Alexander,

First of all, great job on the timing analysis.  I believe this confirms
the concerns that I had about this technique.

Here is a prototype patch of the compressed IRQ stubs -- this patch
compresses them down to 7 stubs per 32-byte cache line (or part of cache
line) at the expense of a back-to-back jmp which has the potential of
being ugly on some pipelines (we can only get 4 stubs into 32 bytes
without that).

Would you be willing to run your timing test on this patch?  This isn't
submission-quality since it commingles multiple changes, and it needs
some cleanup, but it should be useful for testing.

As a side benefit it eliminates some gratuitous differences between the
32- and 64-bit code.

-hpa
_______________________________________________
Lguest mailing list
Lguest-mnsaURCQ41sdnm+yROfE0A&lt; at &gt;public.gmane.org
https://ozlabs.org/mailman/listinfo/lguest
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-10T01:29:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/634">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/634</link>
    <description>On Tue, 4 Nov 2008 21:44:00 +0100, "Ingo Molnar" &lt;mingo-X9Un+BFzKDI&lt; at &gt;public.gmane.org&gt; said:

Hi all,

I have spent some time trying to find out how expensive the
segment-switching patch was. I have only one computer available
at the time: a "Sempron 2400+", 32-bit-only machine.

Measured were timings of "hackbench 10" in a loop. The average
was taken of more than 100 runs. Timings were done for two
seperate boots of the system.

The second test measures the time difference in ticks between
two (almost) consecutive rdtsc instructions and makes a
histogram from that. The (cumulative) histograms are plotted
for an otherwise unused system and for a system running
"hackbench 10" in a loop. The histogram is plotted on a
log-log scale. On the horizontal acces is the length of the
latency, and on the vertical axis the number of occurrences
of a measured time difference _more than_ the value on the
horizontal axis.

before:
hackbench 10: 1.698(2)s 1.712(1)s
hackbench 10 + rdtsctest: hackbench 1.736(2)s 1.712(3)s

aft</description>
    <dc:creator>Alexander van Heukelum</dc:creator>
    <dc:date>2008-11-09T15:16:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/633">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/633</link>
    <description>
* H. Peter Anvin &lt;hpa-YMNOUZJC4hwAvxtiuMwx3w&lt; at &gt;public.gmane.org&gt; wrote:


heh, yes of course :-)

Ingo
</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-11-06T09:30:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/632">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/632</link>
    <description>
8 bytes, rather.
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-06T09:25:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/631">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/631</link>
    <description>
* Alexander van Heukelum &lt;heukelum-97jfqw80gc6171pxa8y+qA&lt; at &gt;public.gmane.org&gt; wrote:


the cost is 6 cycles instead of 1 cycles. In a codepath that takes 
thousands of cycles and is often cache-limited.


we really want to keep the stack frame consistent between all the 
context types. We can do things like return-to-userspace-from-irq or 
schedule-from-irq-initiated-event, etc. - so crossing between these 
context frames has to be standard and straightforward.

Ingo
</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-11-06T09:19:29</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.kernel.virtualization.lguest">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.kernel.virtualization.lguest</link>
  </textinput>
</rdf:RDF>
