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