linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* x86-64: memset()/memcpy() not fully standards compliant
@ 2012-01-05 14:04 Jan Beulich
  2012-01-05 15:27 ` hpanvin@gmail.com
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Jan Beulich @ 2012-01-05 14:04 UTC (permalink / raw)
  To: mingo, tglx, hpa; +Cc: Andi Kleen, linux-kernel

Forever these two functions have been limited to deal with at most 4G
at a time. While I cannot point out an in-tree user that would require
larger sizes, it is now the second time that within our Xen kernel we got
bitten by that limitation. Would you nevertheless accept a patch to
eliminate those shortcomings (iirc there may need to be workarounds
for CPU bugs when it comes to using string instructions on such large
blocks, albeit memmove() doesn't seem to care)?

Otherwise, is there any rationale for this sort of lurking bug?

Thanks, Jan


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-05 14:04 x86-64: memset()/memcpy() not fully standards compliant Jan Beulich
@ 2012-01-05 15:27 ` hpanvin@gmail.com
  2012-01-05 18:28 ` Andi Kleen
  2012-01-06 20:40 ` Valdis.Kletnieks
  2 siblings, 0 replies; 18+ messages in thread
From: hpanvin@gmail.com @ 2012-01-05 15:27 UTC (permalink / raw)
  To: Jan Beulich, mingo, tglx; +Cc: Andi Kleen, linux-kernel

Yes, I think it is probably Just A Bug.  Unless it can be shown it makes it much slower, let's fix.

Jan Beulich <JBeulich@suse.com> wrote:

>Forever these two functions have been limited to deal with at most 4G
>at a time. While I cannot point out an in-tree user that would require
>larger sizes, it is now the second time that within our Xen kernel we
>got
>bitten by that limitation. Would you nevertheless accept a patch to
>eliminate those shortcomings (iirc there may need to be workarounds
>for CPU bugs when it comes to using string instructions on such large
>blocks, albeit memmove() doesn't seem to care)?
>
>Otherwise, is there any rationale for this sort of lurking bug?
>
>Thanks, Jan

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-05 14:04 x86-64: memset()/memcpy() not fully standards compliant Jan Beulich
  2012-01-05 15:27 ` hpanvin@gmail.com
@ 2012-01-05 18:28 ` Andi Kleen
  2012-01-05 23:22   ` H. Peter Anvin
  2012-01-06 20:40 ` Valdis.Kletnieks
  2 siblings, 1 reply; 18+ messages in thread
From: Andi Kleen @ 2012-01-05 18:28 UTC (permalink / raw)
  To: Jan Beulich; +Cc: mingo, tglx, hpa, Andi Kleen, linux-kernel

On Thu, Jan 05, 2012 at 02:04:30PM +0000, Jan Beulich wrote:
> Forever these two functions have been limited to deal with at most 4G
> at a time. While I cannot point out an in-tree user that would require
> larger sizes, it is now the second time that within our Xen kernel we got
> bitten by that limitation. Would you nevertheless accept a patch to
> eliminate those shortcomings (iirc there may need to be workarounds
> for CPU bugs when it comes to using string instructions on such large
> blocks, albeit memmove() doesn't seem to care)?
> 
> Otherwise, is there any rationale for this sort of lurking bug?

Most (all?) of the CPUs I cared about when writing that code had 
bugs with string instructions and >4GB.

And I don't think anything in the kernel would ever process that big
areas in a single operation.

So it never seemed worth caring about.

You probably would need at least one more CMP & conditional jump
in the hot path, so everyone would pay for something that never happens.

-Andi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-05 18:28 ` Andi Kleen
@ 2012-01-05 23:22   ` H. Peter Anvin
  2012-01-06  1:47     ` Andi Kleen
  0 siblings, 1 reply; 18+ messages in thread
From: H. Peter Anvin @ 2012-01-05 23:22 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Jan Beulich, mingo, tglx, linux-kernel

On 01/05/2012 10:28 AM, Andi Kleen wrote:
>>
>> Otherwise, is there any rationale for this sort of lurking bug?
> 
> Most (all?) of the CPUs I cared about when writing that code had 
> bugs with string instructions and >4GB.
> 

Is that still true, and do we even use string instructions still on
those old CPUs?  Jan's fixes don't introduce any additional delays in
the non-string-instruction paths.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-05 23:22   ` H. Peter Anvin
@ 2012-01-06  1:47     ` Andi Kleen
  2012-01-06  2:03       ` H. Peter Anvin
  0 siblings, 1 reply; 18+ messages in thread
From: Andi Kleen @ 2012-01-06  1:47 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Andi Kleen, Jan Beulich, mingo, tglx, linux-kernel

On Thu, Jan 05, 2012 at 03:22:52PM -0800, H. Peter Anvin wrote:
> On 01/05/2012 10:28 AM, Andi Kleen wrote:
> >>
> >> Otherwise, is there any rationale for this sort of lurking bug?
> > 
> > Most (all?) of the CPUs I cared about when writing that code had 
> > bugs with string instructions and >4GB.
> > 
> 
> Is that still true, and do we even use string instructions still on
> those old CPUs?  Jan's fixes don't introduce any additional delays in
> the non-string-instruction paths.

Yes various of the CPUs with bugs used string instructions.

Don't know the state on current CPUs.

Both string and non string instructions are used on modern CPUs,
so making any of that slower is not a good idea.

-Andi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06  1:47     ` Andi Kleen
@ 2012-01-06  2:03       ` H. Peter Anvin
  2012-01-06  7:22         ` Jan Beulich
  2012-01-06  9:49         ` Andi Kleen
  0 siblings, 2 replies; 18+ messages in thread
From: H. Peter Anvin @ 2012-01-06  2:03 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Jan Beulich, mingo, tglx, linux-kernel

On 01/05/2012 05:47 PM, Andi Kleen wrote:
>>
>> Is that still true, and do we even use string instructions still on
>> those old CPUs?  Jan's fixes don't introduce any additional delays in
>> the non-string-instruction paths.
> 
> Yes various of the CPUs with bugs used string instructions.
> 

Which CPUs are you talking about here?

> 
> Both string and non string instructions are used on modern CPUs,
> so making any of that slower is not a good idea.
> 

Obviously not, but I'm perfectly fine turning REP_GOOD off on old broken
CPUs.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06  2:03       ` H. Peter Anvin
@ 2012-01-06  7:22         ` Jan Beulich
  2012-01-06  9:49         ` Andi Kleen
  1 sibling, 0 replies; 18+ messages in thread
From: Jan Beulich @ 2012-01-06  7:22 UTC (permalink / raw)
  To: Andi Kleen, H. Peter Anvin; +Cc: mingo, tglx, linux-kernel

>>> On 06.01.12 at 03:03, "H. Peter Anvin" <hpa@zytor.com> wrote:
> On 01/05/2012 05:47 PM, Andi Kleen wrote:
>>>
>>> Is that still true, and do we even use string instructions still on
>>> those old CPUs?  Jan's fixes don't introduce any additional delays in
>>> the non-string-instruction paths.
>> 
>> Yes various of the CPUs with bugs used string instructions.
>> 
> 
> Which CPUs are you talking about here?

Indeed, I went through various specification updates/revision guides
without finding any relevant erratum.

>> 
>> Both string and non string instructions are used on modern CPUs,
>> so making any of that slower is not a good idea.
>> 
> 
> Obviously not, but I'm perfectly fine turning REP_GOOD off on old broken
> CPUs.

Yes, that's what my plan would have been too, had I been able to
identify any specific CPU(s) that actually suffer from such problems.

Jan


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06  2:03       ` H. Peter Anvin
  2012-01-06  7:22         ` Jan Beulich
@ 2012-01-06  9:49         ` Andi Kleen
  2012-01-06 10:22           ` Jan Beulich
  2012-01-06 11:08           ` Ingo Molnar
  1 sibling, 2 replies; 18+ messages in thread
From: Andi Kleen @ 2012-01-06  9:49 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Andi Kleen, Jan Beulich, mingo, tglx, linux-kernel

On Thu, Jan 05, 2012 at 06:03:23PM -0800, H. Peter Anvin wrote:
> On 01/05/2012 05:47 PM, Andi Kleen wrote:
> >>
> >> Is that still true, and do we even use string instructions still on
> >> those old CPUs?  Jan's fixes don't introduce any additional delays in
> >> the non-string-instruction paths.
> > 
> > Yes various of the CPUs with bugs used string instructions.
> > 
> 
> Which CPUs are you talking about here?

This was various iterations of K8 and PSC. Early Meroms may also have
had issues (not 100% sure).

> 
> > 
> > Both string and non string instructions are used on modern CPUs,
> > so making any of that slower is not a good idea.
> > 
> 
> Obviously not, but I'm perfectly fine turning REP_GOOD off on old broken
> CPUs.

That would be even worse.

You would slow a critical fast path operation down for something
that never happens?!?  There were big differences between strings
and the unrolled loop for several.

IMHO it's a war games situation: "the only way to win is not to play"

-Andi


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06  9:49         ` Andi Kleen
@ 2012-01-06 10:22           ` Jan Beulich
  2012-01-06 10:37             ` Andi Kleen
  2012-01-06 11:08           ` Ingo Molnar
  1 sibling, 1 reply; 18+ messages in thread
From: Jan Beulich @ 2012-01-06 10:22 UTC (permalink / raw)
  To: Andi Kleen; +Cc: mingo, tglx, linux-kernel, H. Peter Anvin

>>> On 06.01.12 at 10:49, Andi Kleen <andi@firstfloor.org> wrote:
> On Thu, Jan 05, 2012 at 06:03:23PM -0800, H. Peter Anvin wrote:
>> On 01/05/2012 05:47 PM, Andi Kleen wrote:
>> >>
>> >> Is that still true, and do we even use string instructions still on
>> >> those old CPUs?  Jan's fixes don't introduce any additional delays in
>> >> the non-string-instruction paths.
>> > 
>> > Yes various of the CPUs with bugs used string instructions.
>> > 
>> 
>> Which CPUs are you talking about here?
> 
> This was various iterations of K8 and PSC. Early Meroms may also have
> had issues (not 100% sure).

I checked the most recent K8 (Hammer) and Pentium4 documentation,
and didn't find mention of anything related. So pointing out where you
found something relevant would be helpful. (And yes, as indicated in
my original mail I too seem to recall there being problems in this area,
but upon closer checking yesterday they all turned out unrelated to
this code.)

>> > Both string and non string instructions are used on modern CPUs,
>> > so making any of that slower is not a good idea.
>> > 
>> 
>> Obviously not, but I'm perfectly fine turning REP_GOOD off on old broken
>> CPUs.
> 
> That would be even worse.

How could you allow a CPU fall under REP_GOOD is its rep
implementation is buggy.

> You would slow a critical fast path operation down for something
> that never happens?!?

It does happen, just (so far) not in-tree. It's a latent problem that's
just waiting for someone else to run into. Apart from large bootmem
allocations (where not even the latency of the memory clearing
matters in any way, there's nothing I know of that would prevent
someone from vmalloc()-ing a huge block of memory and then
calling memset() on it (which ought to be tolerable in a preemptable
kernel at least).

Jan


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 10:22           ` Jan Beulich
@ 2012-01-06 10:37             ` Andi Kleen
  2012-01-06 10:50               ` Jan Beulich
  0 siblings, 1 reply; 18+ messages in thread
From: Andi Kleen @ 2012-01-06 10:37 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Andi Kleen, mingo, tglx, linux-kernel, H. Peter Anvin

> I checked the most recent K8 (Hammer) and Pentium4 documentation,
> and didn't find mention of anything related. So pointing out where you

Sorry don't really plan to do any errata archaeology for this folly.

Maybe it got fixed in the latest versions, I remember them being there
on some early ones at least.

> >> > so making any of that slower is not a good idea.
> >> > 
> >> 
> >> Obviously not, but I'm perfectly fine turning REP_GOOD off on old broken
> >> CPUs.
> > 
> > That would be even worse.
> 
> How could you allow a CPU fall under REP_GOOD is its rep
> implementation is buggy.

The kernel never does >4GB copies, memsets, so it's not buggy.
It's just like any other obscure errata that doesn't matter because
it's not exercised.

REP_GOOD just means "string instructions are faster for 4K operations"

> 
> > You would slow a critical fast path operation down for something
> > that never happens?!?
> 
> It does happen, just (so far) not in-tree. It's a latent problem that's
> just waiting for someone else to run into. Apart from large bootmem
> allocations (where not even the latency of the memory clearing

Modern kernels are bootmem less.

> matters in any way, there's nothing I know of that would prevent
> someone from vmalloc()-ing a huge block of memory and then
> calling memset() on it (which ought to be tolerable in a preemptable
> kernel at least).

I bet there are more "int"s in the allocators and other code. It would
surprise me if it worked even with a changed memset.

Besides it obviously would be a bad idea on non preemptive kernels,
and since that can always happen it would be bad code, hopefully
never hitting any trees.

If you need it in Xen please just add the cmps there.

-Andi
-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 10:37             ` Andi Kleen
@ 2012-01-06 10:50               ` Jan Beulich
  2012-01-06 11:08                 ` Andi Kleen
  0 siblings, 1 reply; 18+ messages in thread
From: Jan Beulich @ 2012-01-06 10:50 UTC (permalink / raw)
  To: Andi Kleen; +Cc: mingo, tglx, linux-kernel, H. Peter Anvin

>>> On 06.01.12 at 11:37, Andi Kleen <andi@firstfloor.org> wrote:
>> > You would slow a critical fast path operation down for something
>> > that never happens?!?
>> 
>> It does happen, just (so far) not in-tree. It's a latent problem that's
>> just waiting for someone else to run into. Apart from large bootmem
>> allocations (where not even the latency of the memory clearing
> 
> Modern kernels are bootmem less.

It's not the traditional bootmem implementation anymore, but
alloc_bootmem() et al still exist, and still clear the allocated memory
(in __alloc_memory_core_early()). So there is a code path that can
validly be used (and it is this code path that is presenting one of the
problems with the non-pv-ops Xen kernels, as they're using flatmem
rather than sparsemem since their physical address space is always
fully continuous).

Jan


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06  9:49         ` Andi Kleen
  2012-01-06 10:22           ` Jan Beulich
@ 2012-01-06 11:08           ` Ingo Molnar
  1 sibling, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2012-01-06 11:08 UTC (permalink / raw)
  To: Andi Kleen; +Cc: H. Peter Anvin, Jan Beulich, tglx, linux-kernel


* Andi Kleen <andi@firstfloor.org> wrote:

> You would slow a critical fast path operation down for 
> something that never happens?!?  There were big differences 
> between strings and the unrolled loop for several.

AFAICS Jan's approach speeds up memset(), so what you say is 
100% pure nonsense.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 10:50               ` Jan Beulich
@ 2012-01-06 11:08                 ` Andi Kleen
  2012-01-06 12:25                   ` Jan Beulich
  0 siblings, 1 reply; 18+ messages in thread
From: Andi Kleen @ 2012-01-06 11:08 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Andi Kleen, mingo, tglx, linux-kernel, H. Peter Anvin

> It's not the traditional bootmem implementation anymore, but
> alloc_bootmem() et al still exist, and still clear the allocated memory
> (in __alloc_memory_core_early()). So there is a code path that can
> validly be used (and it is this code path that is presenting one of the
> problems with the non-pv-ops Xen kernels, as they're using flatmem
> rather than sparsemem since their physical address space is always
> fully continuous).

Yes but there should be no callers that do alloc_bootmem(4G)
The biggest ones afak are the 1GB pages I added some time ago.

How is it a problem in the non pv Xen kernels?

-Andi
-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 11:08                 ` Andi Kleen
@ 2012-01-06 12:25                   ` Jan Beulich
  2012-01-06 19:44                     ` Andi Kleen
  0 siblings, 1 reply; 18+ messages in thread
From: Jan Beulich @ 2012-01-06 12:25 UTC (permalink / raw)
  To: Andi Kleen; +Cc: mingo, tglx, linux-kernel, H. Peter Anvin

>>> On 06.01.12 at 12:08, Andi Kleen <andi@firstfloor.org> wrote:
>>  It's not the traditional bootmem implementation anymore, but
>> alloc_bootmem() et al still exist, and still clear the allocated memory
>> (in __alloc_memory_core_early()). So there is a code path that can
>> validly be used (and it is this code path that is presenting one of the
>> problems with the non-pv-ops Xen kernels, as they're using flatmem
>> rather than sparsemem since their physical address space is always
>> fully continuous).
> 
> Yes but there should be no callers that do alloc_bootmem(4G)
> The biggest ones afak are the 1GB pages I added some time ago.
> 
> How is it a problem in the non pv Xen kernels?

pgdat->node_mem_map[] exceeds 4G when total memory goes far
enough beyond 292G. At some later point ->node_page_cgroup[]
also exceeds 4G. Finally, the phys-to-machine mapping (which gets
resized during boot) exceeds 4G when crossing the 2T boundary.

Jan


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 12:25                   ` Jan Beulich
@ 2012-01-06 19:44                     ` Andi Kleen
  2012-01-06 23:12                       ` H. Peter Anvin
  0 siblings, 1 reply; 18+ messages in thread
From: Andi Kleen @ 2012-01-06 19:44 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Andi Kleen, mingo, tglx, linux-kernel, H. Peter Anvin

> enough beyond 292G. At some later point ->node_page_cgroup[]
> also exceeds 4G. Finally, the phys-to-machine mapping (which gets
> resized during boot) exceeds 4G when crossing the 2T boundary.

Ok it's moot then because the old systems with problem didn't have
that much memory. So you could do without an errata workaround
and just extend the moves at the minor cost of a few prefixes
(I think that is what you did in your patch)

Only hope there are no new chips with similar issues...

-Andi
-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-05 14:04 x86-64: memset()/memcpy() not fully standards compliant Jan Beulich
  2012-01-05 15:27 ` hpanvin@gmail.com
  2012-01-05 18:28 ` Andi Kleen
@ 2012-01-06 20:40 ` Valdis.Kletnieks
  2012-01-09  8:29   ` Jan Beulich
  2 siblings, 1 reply; 18+ messages in thread
From: Valdis.Kletnieks @ 2012-01-06 20:40 UTC (permalink / raw)
  To: Jan Beulich; +Cc: mingo, tglx, hpa, Andi Kleen, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 421 bytes --]

On Thu, 05 Jan 2012 14:04:30 GMT, Jan Beulich said:
> Forever these two functions have been limited to deal with at most 4G
> at a time. While I cannot point out an in-tree user that would require
> larger sizes, it is now the second time that within our Xen kernel we got
> bitten by that limitation.

Wow.  Second time?  What the heck is the Xen kernel *doing* that it's
trying to do over 4G in a single memset/memcpy?

[-- Attachment #2: Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 19:44                     ` Andi Kleen
@ 2012-01-06 23:12                       ` H. Peter Anvin
  0 siblings, 0 replies; 18+ messages in thread
From: H. Peter Anvin @ 2012-01-06 23:12 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Jan Beulich, mingo, tglx, linux-kernel

On 01/06/2012 11:44 AM, Andi Kleen wrote:
>> enough beyond 292G. At some later point ->node_page_cgroup[]
>> also exceeds 4G. Finally, the phys-to-machine mapping (which gets
>> resized during boot) exceeds 4G when crossing the 2T boundary.
> 
> Ok it's moot then because the old systems with problem didn't have
> that much memory. So you could do without an errata workaround
> and just extend the moves at the minor cost of a few prefixes
> (I think that is what you did in your patch)
> 

That seems like the way to go unless we can identify a real problem.

	-hpa


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: x86-64: memset()/memcpy() not fully standards compliant
  2012-01-06 20:40 ` Valdis.Kletnieks
@ 2012-01-09  8:29   ` Jan Beulich
  0 siblings, 0 replies; 18+ messages in thread
From: Jan Beulich @ 2012-01-09  8:29 UTC (permalink / raw)
  To: Valdis.Kletnieks; +Cc: mingo, Andi Kleen, tglx, linux-kernel, hpa

>>> On 06.01.12 at 21:40, <Valdis.Kletnieks@vt.edu> wrote:
> On Thu, 05 Jan 2012 14:04:30 GMT, Jan Beulich said:
>> Forever these two functions have been limited to deal with at most 4G
>> at a time. While I cannot point out an in-tree user that would require
>> larger sizes, it is now the second time that within our Xen kernel we got
>> bitten by that limitation.
> 
> Wow.  Second time?  What the heck is the Xen kernel *doing* that it's
> trying to do over 4G in a single memset/memcpy?

Please see my other reply to Andi for what data structures are
affected here (and starting at what total memory sizes).

Jan


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2012-01-09  8:29 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-05 14:04 x86-64: memset()/memcpy() not fully standards compliant Jan Beulich
2012-01-05 15:27 ` hpanvin@gmail.com
2012-01-05 18:28 ` Andi Kleen
2012-01-05 23:22   ` H. Peter Anvin
2012-01-06  1:47     ` Andi Kleen
2012-01-06  2:03       ` H. Peter Anvin
2012-01-06  7:22         ` Jan Beulich
2012-01-06  9:49         ` Andi Kleen
2012-01-06 10:22           ` Jan Beulich
2012-01-06 10:37             ` Andi Kleen
2012-01-06 10:50               ` Jan Beulich
2012-01-06 11:08                 ` Andi Kleen
2012-01-06 12:25                   ` Jan Beulich
2012-01-06 19:44                     ` Andi Kleen
2012-01-06 23:12                       ` H. Peter Anvin
2012-01-06 11:08           ` Ingo Molnar
2012-01-06 20:40 ` Valdis.Kletnieks
2012-01-09  8:29   ` Jan Beulich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).