Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1486943 > unrolled thread
| Started by | Emil Velikov <emil.l.velikov@gmail.com> |
|---|---|
| First post | 2016-09-20 01:20 +0200 |
| Last post | 2016-09-21 14:10 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue. Emil Velikov <emil.l.velikov@gmail.com> - 2016-09-20 01:20 +0200
Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue. Peter Griffin <peter.griffin@linaro.org> - 2016-09-20 10:40 +0200
Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue. Jani Nikula <jani.nikula@linux.intel.com> - 2016-09-20 11:40 +0200
Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue. Emil Velikov <emil.l.velikov@gmail.com> - 2016-09-21 14:10 +0200
| From | Emil Velikov <emil.l.velikov@gmail.com> |
|---|---|
| Date | 2016-09-20 01:20 +0200 |
| Subject | Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue. |
| Message-ID | <sjg0W-3wX-21@gated-at.bofh.it> |
On 5 September 2016 at 14:16, Peter Griffin <peter.griffin@linaro.org> wrote: > ST_SLIM_REMOTEPROC must select REMOTEPROC, which exposes the following > recursive dependency. > From a humble skim through remoteproc, drm and a few other subsystems I think the above is wrong. All the drivers (outside of remoteproc), that I've seen, depend on the core component, they don't select it. Furthermore most places explicitly hide the drivers from the menu if the core component isn't enabled. Is there something that requires such a different/unusual behaviour in remoteproc ? Regards, Emil
[toc] | [next] | [standalone]
| From | Peter Griffin <peter.griffin@linaro.org> |
|---|---|
| Date | 2016-09-20 10:40 +0200 |
| Subject | Re: [PATCH v9 17/19] drm/virtio: kconfig: Fix recursive dependency issue. |
| Message-ID | <sjoKS-y5-13@gated-at.bofh.it> |
| In reply to | #1486943 |
Hi Emil, On Tue, 20 Sep 2016, Emil Velikov wrote: > On 5 September 2016 at 14:16, Peter Griffin <peter.griffin@linaro.org> wrote: > > ST_SLIM_REMOTEPROC must select REMOTEPROC, which exposes the following > > recursive dependency. > > > From a humble skim through remoteproc, drm and a few other subsystems > I think the above is wrong. All the drivers (outside of remoteproc), > that I've seen, depend on the core component, they don't select it. I will let Bjorn comment on the remoteproc subsystem Kconfig design, and why it is like it is. For this particular SLIM_RPROC I have added it to Kconfig in keeping with all the other drivers in the remoteproc subsystem which has exposed this recursive dependency issue. For this particular kconfig symbol a quick grep reveals more drivers in the kernel using 'select', than 'depend on' git grep "select VIRTIO" | wc -l 14 git grep "depends on VIRTIO" | wc -l 10 > Furthermore most places explicitly hide the drivers from the menu if > the core component isn't enabled. Remoteproc subsystem takes a different approach, the core code is only enabled if a driver which relies on it is enabled. This IMHO makes sense, as remoteproc is not widely used (only a few particular ARM SoC's). It is true that for subsystems which rely on the core component being explicitly enabled, they often tend to hide drivers which depend on it from the menu unless it is. This also makes sense. > > Is there something that requires such a different/unusual behaviour in > remoteproc ? > I'm not sure it is that unusual...looking at config USB, it selects USB_COMMON in mfd subsystem, client drivers select MFD_CORE. I've added Arnd to this thread, as I've seen lots of Kconfig patches from him recently, maybe he has some thoughts on whether this is the correct fix or not? regards, Peter.
[toc] | [prev] | [next] | [standalone]
| From | Jani Nikula <jani.nikula@linux.intel.com> |
|---|---|
| Date | 2016-09-20 11:40 +0200 |
| Message-ID | <sjpGW-179-17@gated-at.bofh.it> |
| In reply to | #1487148 |
On Tue, 20 Sep 2016, Peter Griffin <peter.griffin@linaro.org> wrote: > Hi Emil, > > On Tue, 20 Sep 2016, Emil Velikov wrote: > >> On 5 September 2016 at 14:16, Peter Griffin <peter.griffin@linaro.org> wrote: >> > ST_SLIM_REMOTEPROC must select REMOTEPROC, which exposes the following >> > recursive dependency. > > >> > >> From a humble skim through remoteproc, drm and a few other subsystems >> I think the above is wrong. All the drivers (outside of remoteproc), >> that I've seen, depend on the core component, they don't select it. > > I will let Bjorn comment on the remoteproc subsystem Kconfig design, and > why it is like it is. > > For this particular SLIM_RPROC I have added it to Kconfig in keeping with all > the other drivers in the remoteproc subsystem which has exposed this recursive > dependency issue. > > For this particular kconfig symbol a quick grep reveals more drivers in > the kernel using 'select', than 'depend on' > > git grep "select VIRTIO" | wc -l > 14 > > git grep "depends on VIRTIO" | wc -l > 10 > > >> Furthermore most places explicitly hide the drivers from the menu if >> the core component isn't enabled. > > Remoteproc subsystem takes a different approach, the core code is only enabled > if a driver which relies on it is enabled. This IMHO makes sense, as > remoteproc is not widely used (only a few particular ARM SoC's). > > It is true that for subsystems which rely on the core component being > explicitly enabled, they often tend to hide drivers which depend on it > from the menu unless it is. This also makes sense. > >> >> Is there something that requires such a different/unusual behaviour in >> remoteproc ? >> > > I'm not sure it is that unusual...looking at config USB, it selects USB_COMMON in > mfd subsystem, client drivers select MFD_CORE. > > I've added Arnd to this thread, as I've seen lots of Kconfig patches from him > recently, maybe he has some thoughts on whether this is the correct fix or not? Documentation/kbuild/kconfig-language.txt: Note: select should be used with care. select will force a symbol to a value without visiting the dependencies. By abusing select you are able to select a symbol FOO even if FOO depends on BAR that is not set. In general use select only for non-visible symbols (no prompts anywhere) and for symbols with no dependencies. That will limit the usefulness but on the other hand avoid the illegal configurations all over. People tend to abuse select because it's "convenient". If you depend, but some of your dependencies aren't met, you're in for some digging through Kconfig to find the missing deps. Just to make the option you want visible in menuconfig. If you instead select something with dependencies, it'll be right most of the time, and it's "convenient", until it breaks. (And hey, it usually breaks for someone else with some other config, so it's still convenient for you.) Perhaps kconfig should complain about selecting visible symbols and symbols with dependencies. BR, Jani. -- Jani Nikula, Intel Open Source Technology Center
[toc] | [prev] | [next] | [standalone]
| From | Emil Velikov <emil.l.velikov@gmail.com> |
|---|---|
| Date | 2016-09-21 14:10 +0200 |
| Message-ID | <sjOvE-p7-31@gated-at.bofh.it> |
| In reply to | #1487148 |
On 20 September 2016 at 09:32, Peter Griffin <peter.griffin@linaro.org> wrote:
> Hi Emil,
>
> On Tue, 20 Sep 2016, Emil Velikov wrote:
>
>> On 5 September 2016 at 14:16, Peter Griffin <peter.griffin@linaro.org> wrote:
>> > ST_SLIM_REMOTEPROC must select REMOTEPROC, which exposes the following
>> > recursive dependency.
>
>
>> >
>> From a humble skim through remoteproc, drm and a few other subsystems
>> I think the above is wrong. All the drivers (outside of remoteproc),
>> that I've seen, depend on the core component, they don't select it.
>
> I will let Bjorn comment on the remoteproc subsystem Kconfig design, and
> why it is like it is.
>
> For this particular SLIM_RPROC I have added it to Kconfig in keeping with all
> the other drivers in the remoteproc subsystem which has exposed this recursive
> dependency issue.
>
> For this particular kconfig symbol a quick grep reveals more drivers in
> the kernel using 'select', than 'depend on'
>
> git grep "select VIRTIO" | wc -l
> 14
>
> git grep "depends on VIRTIO" | wc -l
> 10
>
Might be worth taking a closer look into these at some point.
>
>> Furthermore most places explicitly hide the drivers from the menu if
>> the core component isn't enabled.
>
> Remoteproc subsystem takes a different approach, the core code is only enabled
> if a driver which relies on it is enabled. This IMHO makes sense, as
> remoteproc is not widely used (only a few particular ARM SoC's).
>
> It is true that for subsystems which rely on the core component being
> explicitly enabled, they often tend to hide drivers which depend on it
> from the menu unless it is. This also makes sense.
>
>>
>> Is there something that requires such a different/unusual behaviour in
>> remoteproc ?
>>
>
> I'm not sure it is that unusual...looking at config USB, it selects USB_COMMON in
> mfd subsystem, client drivers select MFD_CORE.
>
On the USB case I'm not sure what the reasoning behind the USB vs
USB_COMMON split. In seems that one could just fold them, but that's
another topic. On the MFD side... it follows the select {,mis,ab}use.
With one (the only one?) MFD driver not using/selecting MFD_CORE doing
it's own version of mfd_add_devices... which could be reworked,
possibly.
> I've added Arnd to this thread, as I've seen lots of Kconfig patches from him
> recently, maybe he has some thoughts on whether this is the correct fix or not?
>
Ack. Fwiw, I believe that the reasoning put by Jani is perfeclty
reasonable, but it'll be great to hear others as well.
Thanks
Emil
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web