Re: [PATCH] char: misc: Allow minors values up to MINORMASK

From: D Scott Phillips
Date: Fri Sep 09 2022 - 14:19:45 EST


Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> On Tue, Sep 06, 2022 at 12:52:13PM -0700, D Scott Phillips wrote:
>> For per-cpu coresight_tmc devices, we can end up with hundreds of devices
>> on large systems that all want a dynamic minor number. Switch the dynamic
>> minors allocator to an ida and add logic to allocate in the ranges [0..127]
>> and [256..MINORMASK]. Allocations start from 127 growing downwards and then
>> increasing from 256, so device numbering for the first 128 devices should
>> be the same as before.
>>
>> Signed-off-by: D Scott Phillips <scott@xxxxxxxxxxxxxxxxxxxxxx>
>> ---
>> drivers/char/misc.c | 41 ++++++++++++++++++++++++++++-------------
>> 1 file changed, 28 insertions(+), 13 deletions(-)
>
> So you are adding more logic to the kernel for no change at all?
>
> Why is this needed? What changed here except the underlying data
> structure being used?

Hi Greg, the goal of the change I'm proposing here is to increase the
maximum number of dynamic misc devices from 128 to 1048448. And then the
motivation is that 128 isn't enough for all the coresight_tmc devices we
have on the AmpereOne processor, where there are independent coresight
devices for each cpu. Maybe a clearer commit message to convey that
would be?:

char: misc: Increase the maximum number of dynamic misc devices from 128 to 1048448

On AmpereOne, 128 dynamic misc devices is not enough for the per-cpu
coresight_tmc devices. Switch the dynamic minors allocator to an ida
and add logic to allocate in the ranges [0..127] and
[256..MINORMASK]. Allocations start from 127 growing downwards and then
increasing from 256, so device numbering for the first 128 devices
remain the same as before.