Re: [PATCH v4 4/6] coresight: Use PMU driver configuration for sink selection

From: Greg KH
Date: Fri Nov 30 2018 - 02:42:58 EST


On Thu, Nov 29, 2018 at 04:09:15PM -0700, Mathieu Poirier wrote:
> Hi Greg,
>
> On Thu, Nov 29, 2018 at 08:49:36AM +0100, Greg KH wrote:
> > On Wed, Nov 28, 2018 at 03:01:16PM -0700, Mathieu Poirier wrote:
> > > This patch uses the PMU driver configuration held in event::hw::drv_config
> > > to select a sink for each event that is created (the old sysFS way of
> > > working is kept around for backward compatibility).
> >
> > It is "sysfs", no InterCaps please, I've never called it that in the
> > past.
> >
> > And just use sysfs, if that does not work properly, then fix that, don't
> > create yet-another-way-to-configure-this-thing to just confuse people.
>
> Thanks for the review, you've provided usefull comments.
>
> Regarding the "char *" argument for the ioctl, I followed an example that
> currently exist but I can proceed differently.

What driver currently uses a char * on an ioctl to parse arbritrary
userspace information to set its configuration? That should be fixed...

> My goal with this patchset was specifically to fix what is wrong with sysfs and
> completely take it out of the equation. The only reason to keep the kernel
> interface alive was to prevent braking older user space perf tools currently
> using it.

That's fine, just don't create a new syscall that takes arbritrary data
and parses it in the kernel, that's not ok.

> I chose to use an ioctl() because it is flexible and well suited for the dynamic
> nature of perf events. It is also currently used to set various event specific
> configuration so doing the same adds to the established pattern and avoids
> creating a new way of doing things, something the perf crew would have been
> quick to point out.
>
> Was my approach wrong?

I don't know how the perf interface works, so perhaps work with those
developers to sync up and match what they use today?

But step back, what exactly are you trying to do here? You have an
implementation of a solution but I don't see the problem stated anywhere
here.

thanks,

greg k-h