prosba o otestovani patche na zrychlovani samby/apache
Roman Divacky
rdivacky at freebsd.org
Mon Feb 11 18:58:37 CET 2008
On Mon, Feb 11, 2008 at 06:43:59PM +0100, Dan Lukes wrote:
> Radim Kolar napsal/wrote, On 02/11/08 18:18:
> >> > Na rozhranu user->kernel pak neni nutne strukturu kopirovat a usetri se
> >> > jeden copyin()
>
> > proc se to musi kopirovat? proc nestaci aby kernel pouzival pointer
> > ukazujici do userspace, pristupovat tam muze a behem vykonavani
> > syscallu data stejne uzivatelsky program nemuze zmenit.
>
> Proc se musi kopirovat je mozna spravna otazka, ale at uz je na ni
> odpoved jakakoliv, nic to nemeni na faktu, ze se aktualne kopiruje.
>
> Jedna potiz muze byt, ze tech userspacu je tolik, kolik je procesu.
> Onen pointer tedy nema bezkontextovy vyznam. Kernelspace je jen jeden.
> Pritom zruvna sendfile() je takova spis dlouhotrvajici funkce, behem
> ktere nebude bolajici proces bezet. Teoreticky by se samozrejme ta data
> kopirovat nemusela - proste by se ta user-stranka namapovala do kernel
> prostoru. Na to ale aktualne neexistuji mechanismy. A u malych dat neni
> ani jiste, jestli by to bylo rychlejsi.
dane, proboha.. ja vim ze ti to tvoje grafomanie nedovoluje ale kdyz necemu
nerozumis tak se k tomu nevyjadruj
1) ten copyin/copyout tam je samozrejme proto, protoze userland nam muze dat
libovolnou adresu a kdyby nastal nejaky fault tak jde kernel do hajzlu
(tj. kdyby tam nekdo poslal NULL a my bysme udelali *ptr = 1 tak panicujeme)
ten copyin/copyout ma remapovany fault handler na "return EFAULT"
2) dane, uvedom si ze se bavime o kopirovani 8 bajtu... (16 ti na 64bit platformach)
to nema jiny efekt nez poniceni cache
3) userspace stranky se do kernelu samozrejme mapovat DAJI, zrovna ten sendfile
to pouziva (man sf_buf) a mimochodem tohle je DALEKO rychlejsi na amd64 nez na i386.
asi tak...
roman
More information about the Users-l
mailing list