Re: [OE-core] [PATCH] rng-tools: disable the CPU affinity mask
On Mon, May 10, 2021 at 8:23 AM Jack Mitchell wrote: > > On 10/05/2021 10:48, Richard Purdie wrote: > > On Mon, 2021-05-10 at 10:33 +0800, Yu, Mingli wrote: > >> From: Mingli Yu > >> > >> For the jitter entropy source, each task thread will create an internal > >> counter timer thread when the system clock resolution is under 5MHz. > >> > >> But it will introduce high cpu usage for a long time and also make random > >> data generate too slow if sets the CPU affinity mask of the internal > >> counter > >> timer thread. > >> > >> There is no solution until now and the Upstream recommends to disable > >> the internal timer and think Jitter RNG will not work due to the coarse > >> timer. Check [1] and [2] for more details. > >> > >> So disable the CPU affinity mask as a workaround to avoid lots of context > >> switch and too high cpu load for a long time. > >> > >> [1] https://github.com/smuellerDD/jitterentropy-library/issues/37 > >> [2] https://github.com/nhorman/rng-tools/pull/123 > >> > >> Signed-off-by: Mingli Yu > >> --- > >> ...tter.c-disable-the-CPU-affinity-mask.patch | 48 +++ > >> .../rng-tools/rng-tools_6.11.bb | 1 + > >> 2 files changed, 49 insertions(+) > >> create mode 100644 > >> meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch > > > > Thanks for investigating this upstream. From an OE-Core perspective, I've > > very > > reluctant to take what looks like a very board specific change which the > > upstream > > is advising against. The issue is that this will affect all hardware, not > > just > > the hardware which has the issue. I think we need to find a better solution. > > > > Cheers, > > > > Richard > > > > FWIW I forcefully have to ensure nothing pulls in rng-tools in my builds > which are for two different Rockchip chipsets (armv7 and armv8) as the > rng-tools binary pegs the CPU at 100% for minutes after boot, every > boot. It's particularly annoying as openssh brings it in by default > which I've unsuccessfully argued is wrong before. I believe the problem > is probably fairly widespread but just unnoticed. Is the reason for the CPU being pegged because of the jitter entropy source? If so, perhaps you can disable libjitterentropy in rng-tools packageconfig. We might also be able to make that packageconfig option more "automatic" by basing it on some high precision timer MACHINE_FEATURE instead of always being included. > > Regards, > > -- > Jack Mitchell, Consultant > https://www.tuxable.co.uk > > > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151710): https://lists.openembedded.org/g/openembedded-core/message/151710 Mute This Topic: https://lists.openembedded.org/mt/82711446/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] rng-tools: disable the CPU affinity mask
Hi, On Mon, May 10, 2021 at 02:23:02PM +0100, Jack Mitchell wrote: > On 10/05/2021 10:48, Richard Purdie wrote: > > On Mon, 2021-05-10 at 10:33 +0800, Yu, Mingli wrote: > >> From: Mingli Yu > >> > >> For the jitter entropy source, each task thread will create an internal > >> counter timer thread when the system clock resolution is under 5MHz. > >> > >> But it will introduce high cpu usage for a long time and also make random > >> data generate too slow if sets the CPU affinity mask of the internal > >> counter > >> timer thread. > >> > >> There is no solution until now and the Upstream recommends to disable > >> the internal timer and think Jitter RNG will not work due to the coarse > >> timer. Check [1] and [2] for more details. > >> > >> So disable the CPU affinity mask as a workaround to avoid lots of context > >> switch and too high cpu load for a long time. > >> > >> [1] https://github.com/smuellerDD/jitterentropy-library/issues/37 > >> [2] https://github.com/nhorman/rng-tools/pull/123 > >> > >> Signed-off-by: Mingli Yu > >> --- > >> ...tter.c-disable-the-CPU-affinity-mask.patch | 48 +++ > >> .../rng-tools/rng-tools_6.11.bb | 1 + > >> 2 files changed, 49 insertions(+) > >> create mode 100644 > >> meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch > > > > Thanks for investigating this upstream. From an OE-Core perspective, I've > > very > > reluctant to take what looks like a very board specific change which the > > upstream > > is advising against. The issue is that this will affect all hardware, not > > just > > the hardware which has the issue. I think we need to find a better solution. > > > > Cheers, > > > > Richard > > > > FWIW I forcefully have to ensure nothing pulls in rng-tools in my builds > which are for two different Rockchip chipsets (armv7 and armv8) as the > rng-tools binary pegs the CPU at 100% for minutes after boot, every > boot. It's particularly annoying as openssh brings it in by default > which I've unsuccessfully argued is wrong before. I believe the problem > is probably fairly widespread but just unnoticed. Unfortunately this is better than not having ssh, TLS etc encrypted access at all to/from the target HW since openssl and kernel refuse to proceed due to lack of entropy. If your HW has random number generators and driver support is in place, then rng-tools isn't needed. Cheers, -Mikko -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151532): https://lists.openembedded.org/g/openembedded-core/message/151532 Mute This Topic: https://lists.openembedded.org/mt/82711446/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] rng-tools: disable the CPU affinity mask
On 10/05/2021 10:48, Richard Purdie wrote: > On Mon, 2021-05-10 at 10:33 +0800, Yu, Mingli wrote: >> From: Mingli Yu >> >> For the jitter entropy source, each task thread will create an internal >> counter timer thread when the system clock resolution is under 5MHz. >> >> But it will introduce high cpu usage for a long time and also make random >> data generate too slow if sets the CPU affinity mask of the internal counter >> timer thread. >> >> There is no solution until now and the Upstream recommends to disable >> the internal timer and think Jitter RNG will not work due to the coarse >> timer. Check [1] and [2] for more details. >> >> So disable the CPU affinity mask as a workaround to avoid lots of context >> switch and too high cpu load for a long time. >> >> [1] https://github.com/smuellerDD/jitterentropy-library/issues/37 >> [2] https://github.com/nhorman/rng-tools/pull/123 >> >> Signed-off-by: Mingli Yu >> --- >> ...tter.c-disable-the-CPU-affinity-mask.patch | 48 +++ >> .../rng-tools/rng-tools_6.11.bb | 1 + >> 2 files changed, 49 insertions(+) >> create mode 100644 >> meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch > > Thanks for investigating this upstream. From an OE-Core perspective, I've very > reluctant to take what looks like a very board specific change which the > upstream > is advising against. The issue is that this will affect all hardware, not just > the hardware which has the issue. I think we need to find a better solution. > > Cheers, > > Richard > FWIW I forcefully have to ensure nothing pulls in rng-tools in my builds which are for two different Rockchip chipsets (armv7 and armv8) as the rng-tools binary pegs the CPU at 100% for minutes after boot, every boot. It's particularly annoying as openssh brings it in by default which I've unsuccessfully argued is wrong before. I believe the problem is probably fairly widespread but just unnoticed. Regards, -- Jack Mitchell, Consultant https://www.tuxable.co.uk -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151530): https://lists.openembedded.org/g/openembedded-core/message/151530 Mute This Topic: https://lists.openembedded.org/mt/82711446/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] rng-tools: disable the CPU affinity mask
On Mon, 2021-05-10 at 10:33 +0800, Yu, Mingli wrote: > From: Mingli Yu > > For the jitter entropy source, each task thread will create an internal > counter timer thread when the system clock resolution is under 5MHz. > > But it will introduce high cpu usage for a long time and also make random > data generate too slow if sets the CPU affinity mask of the internal counter > timer thread. > > There is no solution until now and the Upstream recommends to disable > the internal timer and think Jitter RNG will not work due to the coarse > timer. Check [1] and [2] for more details. > > So disable the CPU affinity mask as a workaround to avoid lots of context > switch and too high cpu load for a long time. > > [1] https://github.com/smuellerDD/jitterentropy-library/issues/37 > [2] https://github.com/nhorman/rng-tools/pull/123 > > Signed-off-by: Mingli Yu > --- > ...tter.c-disable-the-CPU-affinity-mask.patch | 48 +++ > .../rng-tools/rng-tools_6.11.bb | 1 + > 2 files changed, 49 insertions(+) > create mode 100644 > meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch Thanks for investigating this upstream. From an OE-Core perspective, I've very reluctant to take what looks like a very board specific change which the upstream is advising against. The issue is that this will affect all hardware, not just the hardware which has the issue. I think we need to find a better solution. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151507): https://lists.openembedded.org/g/openembedded-core/message/151507 Mute This Topic: https://lists.openembedded.org/mt/82711446/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] rng-tools: disable the CPU affinity mask
From: Mingli Yu For the jitter entropy source, each task thread will create an internal counter timer thread when the system clock resolution is under 5MHz. But it will introduce high cpu usage for a long time and also make random data generate too slow if sets the CPU affinity mask of the internal counter timer thread. There is no solution until now and the Upstream recommends to disable the internal timer and think Jitter RNG will not work due to the coarse timer. Check [1] and [2] for more details. So disable the CPU affinity mask as a workaround to avoid lots of context switch and too high cpu load for a long time. [1] https://github.com/smuellerDD/jitterentropy-library/issues/37 [2] https://github.com/nhorman/rng-tools/pull/123 Signed-off-by: Mingli Yu --- ...tter.c-disable-the-CPU-affinity-mask.patch | 48 +++ .../rng-tools/rng-tools_6.11.bb | 1 + 2 files changed, 49 insertions(+) create mode 100644 meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch b/meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch new file mode 100644 index 00..e5fe1b0021 --- /dev/null +++ b/meta/recipes-support/rng-tools/rng-tools/0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch @@ -0,0 +1,48 @@ +From e44e35dd0b739da8718a5c78e0092bd2feabf5ce Mon Sep 17 00:00:00 2001 +From: Zhantao Tang +Date: Sun, 25 Apr 2021 11:33:24 +0800 +Subject: [PATCH] rngd_jitter.c: disable the CPU affinity mask + +For the jitter entropy source, each task thread will create an internal +counter timer thread when the system clock resolution is under 5MHz. + +But it will introduce high cpu usage for a long time and also make random +data generate too slow if sets the CPU affinity mask of the internal counter +timer thread. + +So disable the CPU affinity mask to avoid lots of context switch and too +high cpu load for a long time. + +Upstream-Status: Denied[There is no solution until now and Upstream recommend +to disable the internal timer and think Jitter RNG will +not work due to the coarse timer. Check [1] and [2] for +more details] + +[1] https://github.com/smuellerDD/jitterentropy-library/issues/37 +[2] https://github.com/nhorman/rng-tools/pull/123 + +Signed-off-by: Zhantao Tang +Signed-off-by: Mingli Yu +--- + rngd_jitter.c | 5 - + 1 file changed, 5 deletions(-) + +diff --git a/rngd_jitter.c b/rngd_jitter.c +index c803f0d..ef03c6c 100644 +--- a/rngd_jitter.c b/rngd_jitter.c +@@ -252,11 +252,6 @@ static void *thread_entropy_task(void *data) + me->slptm.tv_nsec = 0; + } + +- /* fill initial entropy */ +- CPU_ZERO(&cpuset); +- CPU_SET(me->core_id, &cpuset); +- pthread_setaffinity_np(pthread_self(), CPU_ALLOC_SIZE(me->core_id+1), &cpuset); +- + tmpbuf = malloc(me->buf_sz); + if (!tmpbuf) { + message_entsrc(me->ent_src,LOG_DAEMON|LOG_DEBUG, "Unable to allocate temp buffer on cpu %d\n", me->core_id); +-- +2.17.1 + diff --git a/meta/recipes-support/rng-tools/rng-tools_6.11.bb b/meta/recipes-support/rng-tools/rng-tools_6.11.bb index 61a0cef2e0..e45a7d12cb 100644 --- a/meta/recipes-support/rng-tools/rng-tools_6.11.bb +++ b/meta/recipes-support/rng-tools/rng-tools_6.11.bb @@ -10,6 +10,7 @@ DEPENDS = "sysfsutils openssl" SRC_URI = "\ git://github.com/nhorman/rng-tools.git \ +file://0001-rngd_jitter.c-disable-the-CPU-affinity-mask.patch \ file://init \ file://default \ file://rngd.service \ -- 2.29.2 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151501): https://lists.openembedded.org/g/openembedded-core/message/151501 Mute This Topic: https://lists.openembedded.org/mt/82711446/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-