[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210222101133.GB14587@amd>
Date: Mon, 22 Feb 2021 11:11:33 +0100
From: Pavel Machek <pavel@....cz>
To: Jonathan Cameron <jic23@...nel.org>
Cc: William Breathitt Gray <vilhelm.gray@...il.com>,
kernel@...gutronix.de, linux-stm32@...md-mailman.stormreply.com,
a.fatoum@...gutronix.de, kamel.bouhara@...tlin.com,
gwendal@...omium.org, alexandre.belloni@...tlin.com,
david@...hnology.com, linux-iio@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
syednwaris@...il.com, patrick.havelange@...ensium.com,
fabrice.gasnier@...com, mcoquelin.stm32@...il.com,
alexandre.torgue@...com, o.rempel@...gutronix.de
Subject: Re: [PATCH v8 18/22] docs: counter: Document character device
interface
Hi!
> > +* COUNTER_ENABLE_EVENTS_IOCTL:
> > + Enables monitoring the events specified by the Counter watches that
> > + were queued by ``COUNTER_ADD_WATCH_IOCTL``. If events are already
> > + enabled, the new set of watches replaces the old one. Calling this
> > + ioctl also has the effect of clearing the queue of watches added by
> > + ``COUNTER_ADD_WATCH_IOCTL``.
> > +
> > +* COUNTER_DISABLE_EVENTS_IOCTL:
> > + Stops monitoring the previously enabled events.
>
> Is there a way to remove a watch?
Is there a way to eat all kernel memory and crash the system by adding
too many watches?
> > +For example, the following userspace code opens ``/dev/counter0``,
> > +configures the ``COUNTER_EVENT_INDEX`` event channel 0 to gather Count 0
> > +and Count 1, and prints out the data as it becomes available on the
> > +character device node::
> > +
>
> Consider adding an example program under tools/
>
> > + #include <fcntl.h>
> > + #include <linux/counter.h>
> > + #include <stdio.h>
> > + #include <string.h>
> > + #include <sys/ioctl.h>
> > + #include <unistd.h>
> > +
> > + struct counter_watch watches[2] = {
> > + {
> > + .component.type = COUNTER_COMPONENT_COUNT,
> > + .component.scope = COUNTER_SCOPE_COUNT,
> > + .component.parent = 0,
>
> Good to add comments on what these elements actually are?
> > + fd = open("/dev/counter0", O_RDWR);
> > +
> > + ioctl(fd, COUNTER_ADD_WATCH_IOCTL, watches);
> > + ioctl(fd, COUNTER_ADD_WATCH_IOCTL, watches + 1);
> > + ioctl(fd, COUNTER_ENABLE_EVENTS_IOCTL);
> > + for (;;) {
> > + read(fd, event_data, sizeof(event_data));
If this goes to tools it really should have error handling and
handling of short read.
Best regards,
Pavel
--
http://www.livejournal.com/~pavelmachek
Download attachment "signature.asc" of type "application/pgp-signature" (182 bytes)
Powered by blists - more mailing lists