<?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://blog.gmane.org/gmane.linux.kernel.virtualization.lguest">
    <title>gmane.linux.kernel.virtualization.lguest</title>
    <link>http://blog.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/679"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/678"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/676"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/675"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/674"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/672"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/671"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/670"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/669"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/667"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/665"/>
        <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: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/679">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatchchanges</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/679</link>
    <description>
* Avi Kivity &lt;avi-H+wXaHxf7aLQT0dZR+AlfA&lt; at &gt;public.gmane.org&gt; wrote:


that is what happened three weeks ago already on Nov 11, we applied
Peter's patches to tip/x86/irq:

   939b787: x86: 64 bits: shrink and align IRQ stubs
   b7c6244: x86: 32 bits: shrink and align IRQ stubs

it's all in the x86 tree and in linux-next as well. Alexander and Peter 
are working on this together, not against each other. Alexander was still 
running some numbers to make sure we made the right decision.

Ingo
</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-12-01T10:49:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/678">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/678</link>
    <description>
What I mean is that hpa's patch makes the kernel better, so it should be 
applied.  I'm not sure what else Alexander is working on, but I do hope 
the improvements will be more concrete.

(Alexander, I apologise for being so discouraging; but I really feel 
these improvements are marginal)

</description>
    <dc:creator>Avi Kivity</dc:creator>
    <dc:date>2008-12-01T10:41:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/676">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/676</link>
    <description>
Four bytes was the smallest sane option.  Three bytes involved 
instruction opcodes overlap.


Once it's done there's no reason not to commit it.  But the effort 
expended to do it is gone, without any measurable return.


</description>
    <dc:creator>Avi Kivity</dc:creator>
    <dc:date>2008-12-01T09:24:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/675">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatchchanges</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/675</link>
    <description>
* Rusty Russell &lt;rusty-8n+1lVoiYb80n/F98K4Iww&lt; at &gt;public.gmane.org&gt; wrote:


Yeah, the efforts from Alexander, Peter and Cyrill are fantastic.

The most positive effects of it isnt just the optimizations and code 
compression. What is important is the fact that this piece of code 
(entry_*.S) has not gotten systematic attention for a decade, and has 
become a rather crufty patchwork of hit-and-run changes. It has become 
very hard to review and it has become a reoccuring source of nasty bugs.

It is now being reworked and re-measured. It does not matter how small 
and hard to measure the gain is in one specific case - we are mainly 
concerned about not creating measurable _harm_, and we are after the 
cleanups and the increase in maintainability. Once the code is cleaner, 
improvements are much easier to do and bugs are much easier to fix.

Ingo
</description>
    <dc:creator>Ingo Molnar</dc:creator>
    <dc:date>2008-12-01T08:00:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/674">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/674</link>
    <description>
Sure, but smallest cache wins.  Which is why I thought hpa chose the 3 byte 
option.


Respectfully disagree.  I wouldn't do it, but it warms my heart that others 
are.  It's are not subtractive from other optimization efforts.

Cheers,
Rusty.
</description>
    <dc:creator>Rusty Russell</dc:creator>
    <dc:date>2008-12-01T04:32:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/672">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/672</link>
    <description>
This is noise. 0.05% cpu on a 1GHz machine servicing 1000 interrupt/sec 
boils down to 500 cycles/interrupt.  These changes shouldn't amount to 
so much (and I doubt you have 1000 interrupts/sec with a single disk)..

I'm sorry, but the whole effort is misguided, in my opinion.  If you 
want to optimize, try reducing the number of interrupts that occur 
rather than saving a few cycles in the interrupt path.

</description>
    <dc:creator>Avi Kivity</dc:creator>
    <dc:date>2008-11-29T18:21:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/671">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/671</link>
    <description>
This is noise. 0.05% cpu on a 1GHz machine servicing 1000 interrupt/sec 
boils down to 500 cycles/interrupt.  These changes shouldn't amount to 
so much (and I doubt you have 1000 interrupts/sec with a single disk)..

I'm sorry, but the whole effort is misguided, in my opinion.  If you 
want to optimize, try reducing the number of interrupts that occur 
rather than saving a few cycles in the interrupt path.

</description>
    <dc:creator>Avi Kivity</dc:creator>
    <dc:date>2008-11-29T18:22:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/670">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/670</link>
    <description>
I now did the benchmarks for the same -rc6 with hpa's 4-byte stubs
too. Same machine. It's significantly better than the other two
options in terms of speed. It takes about 7% less cpu to handle
the interrupts. (0.64% cpu instead of 0.69%.) I have to run now,
I'll let interpreting the histogram to someone else ;).

Greetings,
Alexander


_______________________________________________
Lguest mailing list
Lguest-mnsaURCQ41sdnm+yROfE0A&lt; at &gt;public.gmane.org
https://ozlabs.org/mailman/listinfo/lguest
</description>
    <dc:creator>Alexander van Heukelum</dc:creator>
    <dc:date>2008-11-29T15:45:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/669">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/669</link>
    <description>
Hi all,

We started the discussion with doing away with the whole jump
array entirely, by changing the value of the CS index in the
IDT. This needs the GDT to be extended with 256 entries, but an
entire page (space for 512 entries) was already reserved anyhow!
I think there is still some problem with the patch I sent due to
some code depending on certain values of the CS index, but the
system I've benchmarked on seemed to behave.

I did a set of benchmarks on an 8-way Xeon in 64-bit mode. The
system was loaded with an instance of bonnie++ pinned to processor
0, and all 8 processors were running a program doing (almost)
adjacent rdtsc's. Bonnie++ causes interrupts and the latencies
due to these show up as larger time intervals. Complete runs of
bonnie++ in fast mode were sampled this way for a current -rc6
kernel and an -rc6 kernel plus my patch. The total sampling time
was 30 minutes for each run. Per kernel I did one run as a warm-up
and another two runs to measure the latencies. The results for
measured latencies between 5 and 1000 microseconds are shown in
the attached graph. Above 1000 microseconds there is only one big
contribution: at 40000 microseconds ;). The surface below the graph
is a measure of time.

Observations (for this test load!):

Near 200, 250 and 350 microseconds, the peaks shift to longer
latencies for the cs-changing code by about 10 microseconds,
but the total time spent is pretty much constant.

The highest latencies for the cs-changing code are near 600
and 650 microseconds. The highest latencies for the current
code are near 800 and 850 microseconds.

The total surface of the graphs between 5 and 1000 microseconds
is within an error estimate of 1% equal for both cases, and is
about 0.69% of the total time.

Most time is spent measuring 'latencies' of less than 5 micro-
seconds, since bonnie++ is taking only about 5% cpu time on a
single cpu most of the time, and only up to 50% on a single cpu
during a short time in the file creation benchmark.

Greetings,
Alexander
_______________________________________________
Lguest mailing list
Lguest-mnsaURCQ41sdnm+yROfE0A&lt; at &gt;public.gmane.org
https://ozlabs.org/mailman/listinfo/lguest
</description>
    <dc:creator>Alexander van Heukelum</dc:creator>
    <dc:date>2008-11-28T20:48:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/667">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/667</link>
    <description>
That would be still one byte, otherwise you wouldn't get a unique index.

-Andi

</description>
    <dc:creator>Andi Kleen</dc:creator>
    <dc:date>2008-11-27T10:56:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/665">
    <title>Re: [PATCH RFC/RFB] x86_64,i386: interrupt dispatch changes</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.virtualization.lguest/665</link>
    <description>
Yes, I would consider that a theoretical exercise only :)


On the entirely silly level...

CC xx

-hpa
</description>
    <dc:creator>H. Peter Anvin</dc:creator>
    <dc:date>2008-11-27T00:03:59</dc:date>
  </item>
  <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 leaning towards your simpler variant (and
away from the magical segment register proposal). I'd be happy to see
either of your versions submitted.

</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>
  <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>
