Re: [PATCH] selftests/bpf: Make bpf_util work on uniprocessor systems
On 09/14/2017 09:01 AM, Shuah Khan wrote: > On 09/08/2017 05:05 PM, Daniel Borkmann wrote: >> On 09/09/2017 01:01 AM, Alexei Starovoitov wrote: >>> On Fri, Sep 08, 2017 at 01:19:23PM +0200, Thomas Meyer wrote: The current implementation fails to work on uniprocessor systems. Fix the parser to also handle the uniprocessor case. Signed-off-by: Thomas Meyer >>> >>> Thanks for the fix. lgtm >>> Acked-by: Alexei Starovoitov >> >> Looks good from here as well: >> >> Acked-by: Daniel Borkmann >> >>> This time it's ok to go via selftest tree, but next time please use >>> net-next/net >>> to avoid conflicts. >> >> +1 >> >>> Thanks > > Thank you. I will get this into 4.14-rc2 or rc3. > Applied to linux-kselftest fixes for 4.14-rc2 thanks, -- Shuah
Re: [PATCH] selftests/bpf: Make bpf_util work on uniprocessor systems
On 09/08/2017 05:05 PM, Daniel Borkmann wrote: > On 09/09/2017 01:01 AM, Alexei Starovoitov wrote: >> On Fri, Sep 08, 2017 at 01:19:23PM +0200, Thomas Meyer wrote: >>> The current implementation fails to work on uniprocessor systems. >>> Fix the parser to also handle the uniprocessor case. >>> >>> Signed-off-by: Thomas Meyer >> >> Thanks for the fix. lgtm >> Acked-by: Alexei Starovoitov > > Looks good from here as well: > > Acked-by: Daniel Borkmann > >> This time it's ok to go via selftest tree, but next time please use >> net-next/net >> to avoid conflicts. > > +1 > >> Thanks Thank you. I will get this into 4.14-rc2 or rc3. thanks, -- Shuah >> >>> --- >>> tools/testing/selftests/bpf/bpf_util.h | 17 + >>> 1 file changed, 9 insertions(+), 8 deletions(-) >>> >>> diff --git a/tools/testing/selftests/bpf/bpf_util.h >>> b/tools/testing/selftests/bpf/bpf_util.h >>> index 20ecbaa0d85d..6c53a8906eff 100644 >>> --- a/tools/testing/selftests/bpf/bpf_util.h >>> +++ b/tools/testing/selftests/bpf/bpf_util.h >>> @@ -12,6 +12,7 @@ static inline unsigned int bpf_num_possible_cpus(void) >>> unsigned int start, end, possible_cpus = 0; >>> char buff[128]; >>> FILE *fp; >>> +int n; >>> >>> fp = fopen(fcpu, "r"); >>> if (!fp) { >>> @@ -20,17 +21,17 @@ static inline unsigned int bpf_num_possible_cpus(void) >>> } >>> >>> while (fgets(buff, sizeof(buff), fp)) { >>> -if (sscanf(buff, "%u-%u", &start, &end) == 2) { >>> -possible_cpus = start == 0 ? end + 1 : 0; >>> -break; >>> +n = sscanf(buff, "%u-%u", &start, &end); >>> +if (n == 0) { >>> +printf("Failed to retrieve # possible CPUs!\n"); >>> +exit(1); >>> +} else if (n == 1) { >>> +end = start; >>> } >>> +possible_cpus = start == 0 ? end + 1 : 0; >>> +break; >>> } >>> - >>> fclose(fp); >>> -if (!possible_cpus) { >>> -printf("Failed to retrieve # possible CPUs!\n"); >>> -exit(1); >>> -} >>> >>> return possible_cpus; >>> } >>> -- >>> 2.11.0 >>> > > >
Re: [PATCH] selftests/bpf: Make bpf_util work on uniprocessor systems
On 09/09/2017 01:01 AM, Alexei Starovoitov wrote: On Fri, Sep 08, 2017 at 01:19:23PM +0200, Thomas Meyer wrote: The current implementation fails to work on uniprocessor systems. Fix the parser to also handle the uniprocessor case. Signed-off-by: Thomas Meyer Thanks for the fix. lgtm Acked-by: Alexei Starovoitov Looks good from here as well: Acked-by: Daniel Borkmann This time it's ok to go via selftest tree, but next time please use net-next/net to avoid conflicts. +1 Thanks --- tools/testing/selftests/bpf/bpf_util.h | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/bpf/bpf_util.h b/tools/testing/selftests/bpf/bpf_util.h index 20ecbaa0d85d..6c53a8906eff 100644 --- a/tools/testing/selftests/bpf/bpf_util.h +++ b/tools/testing/selftests/bpf/bpf_util.h @@ -12,6 +12,7 @@ static inline unsigned int bpf_num_possible_cpus(void) unsigned int start, end, possible_cpus = 0; char buff[128]; FILE *fp; + int n; fp = fopen(fcpu, "r"); if (!fp) { @@ -20,17 +21,17 @@ static inline unsigned int bpf_num_possible_cpus(void) } while (fgets(buff, sizeof(buff), fp)) { - if (sscanf(buff, "%u-%u", &start, &end) == 2) { - possible_cpus = start == 0 ? end + 1 : 0; - break; + n = sscanf(buff, "%u-%u", &start, &end); + if (n == 0) { + printf("Failed to retrieve # possible CPUs!\n"); + exit(1); + } else if (n == 1) { + end = start; } + possible_cpus = start == 0 ? end + 1 : 0; + break; } - fclose(fp); - if (!possible_cpus) { - printf("Failed to retrieve # possible CPUs!\n"); - exit(1); - } return possible_cpus; } -- 2.11.0
Re: [PATCH] selftests/bpf: Make bpf_util work on uniprocessor systems
On Fri, Sep 08, 2017 at 01:19:23PM +0200, Thomas Meyer wrote: > The current implementation fails to work on uniprocessor systems. > Fix the parser to also handle the uniprocessor case. > > Signed-off-by: Thomas Meyer Thanks for the fix. lgtm Acked-by: Alexei Starovoitov This time it's ok to go via selftest tree, but next time please use net-next/net to avoid conflicts. Thanks > --- > tools/testing/selftests/bpf/bpf_util.h | 17 + > 1 file changed, 9 insertions(+), 8 deletions(-) > > diff --git a/tools/testing/selftests/bpf/bpf_util.h > b/tools/testing/selftests/bpf/bpf_util.h > index 20ecbaa0d85d..6c53a8906eff 100644 > --- a/tools/testing/selftests/bpf/bpf_util.h > +++ b/tools/testing/selftests/bpf/bpf_util.h > @@ -12,6 +12,7 @@ static inline unsigned int bpf_num_possible_cpus(void) > unsigned int start, end, possible_cpus = 0; > char buff[128]; > FILE *fp; > + int n; > > fp = fopen(fcpu, "r"); > if (!fp) { > @@ -20,17 +21,17 @@ static inline unsigned int bpf_num_possible_cpus(void) > } > > while (fgets(buff, sizeof(buff), fp)) { > - if (sscanf(buff, "%u-%u", &start, &end) == 2) { > - possible_cpus = start == 0 ? end + 1 : 0; > - break; > + n = sscanf(buff, "%u-%u", &start, &end); > + if (n == 0) { > + printf("Failed to retrieve # possible CPUs!\n"); > + exit(1); > + } else if (n == 1) { > + end = start; > } > + possible_cpus = start == 0 ? end + 1 : 0; > + break; > } > - > fclose(fp); > - if (!possible_cpus) { > - printf("Failed to retrieve # possible CPUs!\n"); > - exit(1); > - } > > return possible_cpus; > } > -- > 2.11.0 >
[PATCH] selftests/bpf: Make bpf_util work on uniprocessor systems
The current implementation fails to work on uniprocessor systems. Fix the parser to also handle the uniprocessor case. Signed-off-by: Thomas Meyer --- tools/testing/selftests/bpf/bpf_util.h | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/bpf/bpf_util.h b/tools/testing/selftests/bpf/bpf_util.h index 20ecbaa0d85d..6c53a8906eff 100644 --- a/tools/testing/selftests/bpf/bpf_util.h +++ b/tools/testing/selftests/bpf/bpf_util.h @@ -12,6 +12,7 @@ static inline unsigned int bpf_num_possible_cpus(void) unsigned int start, end, possible_cpus = 0; char buff[128]; FILE *fp; + int n; fp = fopen(fcpu, "r"); if (!fp) { @@ -20,17 +21,17 @@ static inline unsigned int bpf_num_possible_cpus(void) } while (fgets(buff, sizeof(buff), fp)) { - if (sscanf(buff, "%u-%u", &start, &end) == 2) { - possible_cpus = start == 0 ? end + 1 : 0; - break; + n = sscanf(buff, "%u-%u", &start, &end); + if (n == 0) { + printf("Failed to retrieve # possible CPUs!\n"); + exit(1); + } else if (n == 1) { + end = start; } + possible_cpus = start == 0 ? end + 1 : 0; + break; } - fclose(fp); - if (!possible_cpus) { - printf("Failed to retrieve # possible CPUs!\n"); - exit(1); - } return possible_cpus; } -- 2.11.0