Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Dec 2022 14:44:15 +0000
From:      "Alexander V. Chernikov" <melifaro@ipfw.ru>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        hackers@freebsd.org
Subject:   Re: devctl_notify system is inconsistent
Message-ID:  <93B61739-04EF-4C68-9C91-516AA8FA4418@ipfw.ru>
In-Reply-To: <20221201083559.xx3v5jn7sf44rfmv@aniel.nours.eu>
References:  <20221201083559.xx3v5jn7sf44rfmv@aniel.nours.eu>

next in thread | previous in thread | raw e-mail | index | archive | help



> On 1 Dec 2022, at 08:35, Baptiste Daroussin <bapt@FreeBSD.org> wrote:
> 
> Hello,
> 
> After the addition of netlink(4) by melifaro@, I started working on a new
> genetlink(4) module, to send kernel notification to the userland via netlink.
> 
> The goal is to be able to have multiple consumers without the need of devd to be
> running.
> 
> The goal is also to be able subscribe to the events the consumer is willing to
> receive.
> 
> https://reviews.freebsd.org/D37574
> 
> I also added a hook to devctl_notify to make sure all its event got sent via
> nlsysevent. (https://reviews.freebsd.org/D37573)
> 
> It works great and so far I am happy with it. on thing I figured out it is:
> the "system" argment of devctl_notify is inconsistent:
> Upper case vs lower case
> "kern" vs "kernel"
> 
> I intent to fix the following way:
> Create a new function similar to devctl_notify but with the first argument being
> an enum.
I don’t have enough domain knowledge here, but generally, one of the important changes in generic netlink was to move away from the enum-like identifiers shared across the modules to strings.
Having a single enum for the subsystem names would be hard for the third-part module authors as they have to guess/compete for the numbers.
I’d advocate for leaving them as strings (maybe with enforcing some naming rules).  

> Make the current devctl_notify convert its first argument into that enum and
> yell if an unkwown "system" is passed. (and probably declare devctl_notify
> deprecated)
> 
> Then fix the inconsistencies: all upper case as it seems the most wildly use
> case
> s/kern/kernel/g
> 
> WDYT?
> 
> Best regards,
> Bapt
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?93B61739-04EF-4C68-9C91-516AA8FA4418>