Subject: Re: GCC3.3.1 switch coming soon.
To: enami tsugutomo <enami@but-b.or.jp>
From: Andrew Brown <atatat@atatdot.net>
List: tech-kern
Date: 09/23/2003 23:10:06
>> since the permissions of the stack changed (from rwx to rw- when we
>> got the w^x code), there's a greater possibility of things getting
>> merged with the stack (the merge code is eager to merge stuff that can
>> be merged), but with the way that stack faults (ie, attempts to write
>> to unmapped pages) are handled, attempting to write to something at
>> the "top" (ie, the lowest address) of the stack, not incurring page
>> faults in an orderly manner makes you die.
>>
>> enami-san, your change makes sense in a general case, which handles
>> running up against the header entry in the circular list much more
>> sensible, but there's still the "merge with stack" problem.
>
>What my patch solves is that it prevents uvm_map_findspace() from
>returning not a free free as a free space. "merge with stack" is a
>different matter (just a trigger of bug in this case), and I don't
>think it is a problem.
whether it's a problem or not is a problem in and of itself. no one
can say. i think it's probably not, but i know i like it more when
it's not merged. it just looks cleaner.
>Whether vm map entrys are merged or not isn't visible from outside of
>vm system (except pmap(1) output :-), is it? I.e., if adjacent vm map
>entry to stack looks equivalent, touching around the boundary will
>cause same behaviour.
that should be the case, yes, but i'll have to go back and re-verify
my results. i could have sworn it came up different, but i've just
realized ther are a lot more little hacks in my tree that i initially
thought.
--
|-----< "CODE WARRIOR" >-----|
codewarrior@daemon.org * "ah! i see you have the internet
twofsonet@graffiti.com (Andrew Brown) that goes *ping*!"
werdna@squooshy.com * "information is power -- share the wealth."