Re: [PATCH] mm/gup_benchmark: GUP_BENCHMARK depends on DEBUG_FS

From: John Hubbard
Date: Sat Nov 07 2020 - 14:16:59 EST


On 11/7/20 11:05 AM, Song Bao Hua (Barry Song) wrote:
-----Original Message-----
From: John Hubbard [mailto:jhubbard@xxxxxxxxxx]
...
config GUP_BENCHMARK
bool "Enable infrastructure for get_user_pages() and related calls
benchmarking"
+ depends on DEBUG_FS


I think "select DEBUG_FS" is better here. "depends on" has the obnoxious
behavior of hiding the choice from you, if the dependencies aren't already met.
Whereas what the developer *really* wants is a no-nonsense activation of the
choice: "enable GUP_BENCHMARK and the debug fs that it requires".


To some extent, I agree with you. But I still think here it is better to use "depends on".
According to
https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt

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.

On the other hand, in kernel there are 78 "depends on DEBUG_FS" and
only 14 "select DEBUG_FS".


You're not looking at the best statistics. Go look at what *already* selects
DEBUG_FS, and you'll find about 50 items.


thanks,
--
John Hubbard
NVIDIA