Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src



As discussed somewhere some time ago, I think PAGE_SIZE and other
constants should be provided via "sysconf(9)".

If you don't like indirection, you'd use pre-link binaries (== static kernel).

On Sat, Feb 18, 2012 at 9:14 AM, Julio Merino <jmmv%julipedia.org@localhost> 
wrote:
> On 2/17/12 7:11 PM, Julio Merino wrote:
>>
>> On 2/17/12 6:42 PM, Matt Thomas wrote:
>>>
>>>
>>> On Feb 17, 2012, at 3:11 PM, Julio Merino wrote:
>>>
>>>> On 2/17/12 6:06 PM, Matt Thomas wrote:
>>>>>
>>>>>
>>>>> On Feb 17, 2012, at 3:02 PM, Julio Merino wrote:
>>>>>>
>>>>>> Aha, I see. Does it make sense to keep the test after renaming
>>>>>> PAGE_SIZE to uvmexp.pagesize? It's a public symbol after all and we
>>>>>> really should have tests for these, I think.
>>>>>>
>>>>>> Do we need to go over the broken modules one by one and replace
>>>>>> PAGE_SIZE with uvmexp.pagesize? (I'm expecting this won't be as
>>>>>> easy as it sounds due to preprocessor conditionals et. al.)
>>>>>
>>>>>
>>>>> They should still use PAGE_SIZE which should evaluate to
>>>>> uvmexp.pagesize
>>>>
>>>>
>>>> Now you lost me. You started saying that PAGE_SIZE is explicitly not
>>>> available, and now you say that the modules have to use PAGE_SIZE?
>>>>
>>>> The problem is that PAGE_SIZE is NOT being evaluated to
>>>> uvmexp.pagesize as you mention. It's being evaluated to
>>>> uvmexp_pagesize, which does not exist and thus causes the module to
>>>> not load. And that's what this test is all about.
>>>
>>>
>>> Hmmm. I think uvmexp_pagesize, etal is there to avoid needed uvmexp
>>> defined.
>>>
>>> The problem was:
>>>
>>> --- uvm_param.h 29 Nov 2011 07:43:54 -0000 1.26
>>> +++ uvm_param.h 17 Feb 2012 23:40:50 -0000
>>> @@ -134,7 +134,7 @@
>>> * If MIN_PAGE_SIZE and MAX_PAGE_SIZE are not equal, then we must use
>>> * non-constant PAGE_SIZE, et al for LKMs.
>>> */
>>> -#if (MIN_PAGE_SIZE != MAX_PAGE_SIZE)&& defined(_LKM)
>>> +#if (MIN_PAGE_SIZE != MAX_PAGE_SIZE)&& (defined(_LKM) ||
>>> defined(MODULAR))
>>> #undef PAGE_SIZE
>>> #undef PAGE_MASK
>>> #undef PAGE_SHIFT
>>
>>
>>
>> I have applied this patch and rebuilt the affected test module... and it
>> still won't load. Wasn't that supposed to be _MODULE instead of MODULAR?
>
>
> Oh, but even doing that change, the module won't load either.  PAGE_SIZE
> still ends up being defined as uvmexp_pagesize... which I believe is
> correct, right? because the size must be represented as a variable... but
> that variable is not available in the built kernel.


Home | Main Index | Thread Index | Old Index