On Mon, Feb 11, 2008 at 07:11:04PM +0100, Dan Lukes wrote:
> Roman Divacky napsal/wrote, On 02/11/08 18:58:
> > 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"
> 
>       Na to by stacilo platnost adresy zkontrolovat. Kopirovani by treba 
> nebylo.

vis co je "fault" ? pokud ano tak mi neni jasne jak muzes nechapat to co jsem 
napsal.
proste mam treba segment pameti mapovany RO a userspace mi posle pro nejakou 
write
operaci adresu pameti v tom segmentu nebo proste neco takoveho... nevim jak 
jinak
to vysvetlit
 
> > 2) dane, uvedom si ze se bavime o kopirovani 8 bajtu... (16 ti na 64bit 
> > platformach)
> > to nema jiny efekt nez poniceni cache
> 
>       Do tech osmi bajtu se tak jako tak tesne pred tim sahalo - kdyz se ta 
> struktura vyplnovala. Takze, i kdybych pristoupil na tvoje tvrzeni, ze 
> pouzivani cache k tomu, k cemu je urcena, je jeji niceni - tak uz je 
> stejen znicena.

acho jo....

jsme v samba_foo() v cache mame tu strukturu... pak volame syscall, ktery 
provede
HODNE kodu nez se to dostane do do_sendfile(), v tu dobu uz jsou v cache davno 
jina
data a tim ze tu strukturu musime nahrat ty data z te cache vypudime
 
> > 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.
> 
>       Ja myslim, ze Radimova otazka byla jasna - ptal se, proc se to 
> kopiruje. Takze kdyz tomu rozumis, a podle sebevedomeho prohlaseni 
> soudim, ze ano, tak mu odpovez. Myslim, ze si to precteme radi vsichni.
> 
>       A pokud svoji znalost take vtelis do prislusneho patche (jestli to 
> kopirovani je podle tebe zbytecne a tak strasne zdrzuje, tak by tam asi 
> nemelo byt) tak jeste lepe.

nevim co na to odpovedet :) dane, ty mas hodne spatnej co :)

copyin/copyout je tam aby nejaky fault nepanicnul system a ten copyin tam 
zbytecny
neni, jen v pripade ze ta struktura obsahuje same NULL tak to nedava moc smysl.
to je asi jako bych ti dal na praci abys jel na misto A a udelal tam co ti 
reknou
a pak na misto B a udelal co ti tam reknou.. a kdyz ti na obou mistech reknou 
"nic/NULL"
a ja to predem vim tak udelam lip ze te tam neposlu ne? 

-- 
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem