[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1158986162.26261.66.camel@localhost.localdomain>
Date: Sat, 23 Sep 2006 14:36:01 +1000
From: Rusty Russell <rusty@...tcorp.com.au>
To: Jeremy Fitzhardinge <jeremy@...p.org>
Cc: Andi Kleen <ak@....de>,
lkml - Kernel Mailing List <linux-kernel@...r.kernel.org>,
virtualization <virtualization@...ts.osdl.org>
Subject: Re: [PATCH 2/7]
On Fri, 2006-09-22 at 15:24 -0700, Jeremy Fitzhardinge wrote:
> Rusty Russell wrote:
> > This patch implements save/restore of %gs in the kernel, so it can be
> > used for per-cpu data. This is not cheap, and we do it for UP as well
> > as SMP, which is stupid. Benchmarks, anyone?
> >
> I measured the cost as adding 9 cycles to a null syscall on my Core Duo
> machine. I have not explicitly measured it on other machines, but I run
> a number of other segment save/load tests on a wide range of machines,
> and didn't find much variability.
Oh, OK! I had a belief that segment loading was expensive, perhaps I'm
off-base here.
> I think saving/restoring %gs will still be necessary. There are a number
> of places in the kernel which expect to find the usermode %gs on the
> kernel stack frame, including context switch, ptrace, vm86, signal
> context, and maybe something else. If you don't save it on the stack,
> then you need to have UP variations of %gs handling in all those other
> places, which is pretty messy. Also, unless you want to have two
> definitions of struct_pt regs (which would add even more mess into
> ptrace), you'd still need to sub/add %esp in entry.S to skip over the
> %gs hole. I don't think this UP microoptimisation would be worth enough
> to justify the mess it would cause elsewhere.
>
> How does this version of the patch differ from mine? Is it just my
> patch+Ingo's fix, or are there other changes? I couldn't see anything
> from a quick read-over.
Yep, no substative changes. s/__KERNEL_PDA/__KERNEL_PERCPU/, plus your
version had a "write_pda(pcurrent, next_p)" inserted in process.c's
__switch_to which belonged in a successor patch...
Thanks!
Rusty.
--
Help! Save Australia from the worst of the DMCA: http://linux.org.au/law
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists