Re: randomdev hangs during initial boot of -current on Raspberry Pi

2022-02-03 Thread Jesper Schmitz Mouridsen



On 03.02.2022 02.06, Kyle Evans wrote:

On Wed, Feb 2, 2022 at 10:50 AM Kyle Evans  wrote:

On Wed, Feb 2, 2022 at 3:41 AM Jesper Schmitz Mouridsen  
wrote:



On 31.01.2022 22.20, Mark Millard wrote:

Mike Karels  wrote on
Date: Mon, 31 Jan 2022 12:27:41 -0600 :


A bisect
would be rather laborious, building a modified SD card each time,
even if just testing kernel changes.  Any other suggestions?

Historically I've used:

https://artifact.ci.freebsd.org/snapshot/main/?C=M=D

and the likes of kernel.txz (or more) from, for example:

https://artifact.ci.freebsd.org/snapshot/main/b4cc5d63b6112746598d21413c9800a43171da52/arm64/aarch64/?C=M=D

to update just the kernel (or whatever) and rebooted.
(It can help to have a somewhat older world that is
left in place instead of running newer worlds on older
kernels. Avoiding needing got update world as well has
been helpful when testing for kernel issues.)

This avoids building the kernels and allows a somewhat
bisect like activity until some subrange has no
arm64/aarch64 artifacts available.

One can sometimes run into the dates for the sort for:

https://artifact.ci.freebsd.org/snapshot/main/?C=M=D

not matching up well with the dates on the files of
interest in specific sub directoreis. (Some sort of
directory update?) This can make the bisect far more
difficult, given the choice to not have the directory
names prefixed with text that would sort by a
date/time estimate when sorted by name. (Only using
the commit id/hash completely randomizes the naming.)


===
Mark Millard
marklmi at yahoo.com



Hi
My bisect gives:
The latest working is:
dda9847275da79ccbb2f0b7079b250e28b3b3b2a
The excact following commit:
74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is bad.
So  74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is where the problem starts
for me.
Hope that someone can explain why
74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 does block entropy/random
seeding on first boot around growfs invocation on arm64
/Jsm


That seems odd, but CC'ing jhb@ -- maybe there's something hinky going
on since this is before AP startup for arm.

I poked jhb out-of-band and we tracked it down to callouts having been
a major source of entropy for early boot via SWI; tentative fix
pending here: https://reviews.freebsd.org/D34150

Thanks,

Kyle Evans


I can confirm it works onĀ  arm64 (Pinebook Pro)

Thanks!




Re: randomdev hangs during initial boot of -current on Raspberry Pi

2022-02-02 Thread Kyle Evans
On Wed, Feb 2, 2022 at 10:50 AM Kyle Evans  wrote:
>
> On Wed, Feb 2, 2022 at 3:41 AM Jesper Schmitz Mouridsen  
> wrote:
> >
> >
> >
> > On 31.01.2022 22.20, Mark Millard wrote:
> > > Mike Karels  wrote on
> > > Date: Mon, 31 Jan 2022 12:27:41 -0600 :
> > >
> > >> A bisect
> > >> would be rather laborious, building a modified SD card each time,
> > >> even if just testing kernel changes.  Any other suggestions?
> > >
> > > Historically I've used:
> > >
> > > https://artifact.ci.freebsd.org/snapshot/main/?C=M=D
> > >
> > > and the likes of kernel.txz (or more) from, for example:
> > >
> > > https://artifact.ci.freebsd.org/snapshot/main/b4cc5d63b6112746598d21413c9800a43171da52/arm64/aarch64/?C=M=D
> > >
> > > to update just the kernel (or whatever) and rebooted.
> > > (It can help to have a somewhat older world that is
> > > left in place instead of running newer worlds on older
> > > kernels. Avoiding needing got update world as well has
> > > been helpful when testing for kernel issues.)
> > >
> > > This avoids building the kernels and allows a somewhat
> > > bisect like activity until some subrange has no
> > > arm64/aarch64 artifacts available.
> > >
> > > One can sometimes run into the dates for the sort for:
> > >
> > > https://artifact.ci.freebsd.org/snapshot/main/?C=M=D
> > >
> > > not matching up well with the dates on the files of
> > > interest in specific sub directoreis. (Some sort of
> > > directory update?) This can make the bisect far more
> > > difficult, given the choice to not have the directory
> > > names prefixed with text that would sort by a
> > > date/time estimate when sorted by name. (Only using
> > > the commit id/hash completely randomizes the naming.)
> > >
> > >
> > > ===
> > > Mark Millard
> > > marklmi at yahoo.com
> > >
> > >
> > Hi
> > My bisect gives:
> > The latest working is:
> > dda9847275da79ccbb2f0b7079b250e28b3b3b2a
> > The excact following commit:
> > 74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is bad.
> > So  74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is where the problem starts
> > for me.
> > Hope that someone can explain why
> > 74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 does block entropy/random
> > seeding on first boot around growfs invocation on arm64
> > /Jsm
> >
>
> That seems odd, but CC'ing jhb@ -- maybe there's something hinky going
> on since this is before AP startup for arm.

I poked jhb out-of-band and we tracked it down to callouts having been
a major source of entropy for early boot via SWI; tentative fix
pending here: https://reviews.freebsd.org/D34150

Thanks,

Kyle Evans



Re: randomdev hangs during initial boot of -current on Raspberry Pi

2022-02-02 Thread Kyle Evans
On Wed, Feb 2, 2022 at 3:41 AM Jesper Schmitz Mouridsen  
wrote:
>
>
>
> On 31.01.2022 22.20, Mark Millard wrote:
> > Mike Karels  wrote on
> > Date: Mon, 31 Jan 2022 12:27:41 -0600 :
> >
> >> A bisect
> >> would be rather laborious, building a modified SD card each time,
> >> even if just testing kernel changes.  Any other suggestions?
> >
> > Historically I've used:
> >
> > https://artifact.ci.freebsd.org/snapshot/main/?C=M=D
> >
> > and the likes of kernel.txz (or more) from, for example:
> >
> > https://artifact.ci.freebsd.org/snapshot/main/b4cc5d63b6112746598d21413c9800a43171da52/arm64/aarch64/?C=M=D
> >
> > to update just the kernel (or whatever) and rebooted.
> > (It can help to have a somewhat older world that is
> > left in place instead of running newer worlds on older
> > kernels. Avoiding needing got update world as well has
> > been helpful when testing for kernel issues.)
> >
> > This avoids building the kernels and allows a somewhat
> > bisect like activity until some subrange has no
> > arm64/aarch64 artifacts available.
> >
> > One can sometimes run into the dates for the sort for:
> >
> > https://artifact.ci.freebsd.org/snapshot/main/?C=M=D
> >
> > not matching up well with the dates on the files of
> > interest in specific sub directoreis. (Some sort of
> > directory update?) This can make the bisect far more
> > difficult, given the choice to not have the directory
> > names prefixed with text that would sort by a
> > date/time estimate when sorted by name. (Only using
> > the commit id/hash completely randomizes the naming.)
> >
> >
> > ===
> > Mark Millard
> > marklmi at yahoo.com
> >
> >
> Hi
> My bisect gives:
> The latest working is:
> dda9847275da79ccbb2f0b7079b250e28b3b3b2a
> The excact following commit:
> 74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is bad.
> So  74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is where the problem starts
> for me.
> Hope that someone can explain why
> 74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 does block entropy/random
> seeding on first boot around growfs invocation on arm64
> /Jsm
>

That seems odd, but CC'ing jhb@ -- maybe there's something hinky going
on since this is before AP startup for arm.



Re: randomdev hangs during initial boot of -current on Raspberry Pi [main 74cf7cae4d22 issue]

2022-02-02 Thread Mark Millard
[Forwarding to John Baldwin, who authored and comitted:
https://cgit.freebsd.org/src/commit/?id=74cf7cae4d22
"softclock: Use dedicated ithreads for running callouts."
Also including text from the original message:
https://lists.freebsd.org/archives/freebsd-current/2022-January/001474.html
"randomdev hangs during initial boot of -current on Raspberry Pi"
so there is a description of the problem wihtout having
to look elsewhwere.
]

Mike Karels  wrote on
Date: Mon, 31 Jan 2022 12:27:41 -0600 :

> I hadn't updated my Raspberry Pi 4B running -current for a couple of
> months, so I booted the latest snapshot (Jan 27).  It hangs when it
> does the "growfs" step, expanding the root partition and fs to fill
> the SD card.  When it hangs, it prints this every 10 seconds or so:
> 
> random: randomdev_wait_until_seeded unblock wait
> 
> I waited several minutes the first time, and 20 minutes on another trial.
> If I hold down the return key on the serial console, the device unblocks
> and the boot continues.  This only happens on the initial boot, when the
> growfs script runs.  The hang happens on a Raspberry Pi 3B+ as well.
> It also happens with the two-week-old snapshot, but not the Nov 25
> snapshot.  The program that's running during the hang is awk, doing
> a read, according to ^T; the script uses awk to parse output from
> mount, glabel, and sysctl.
> 
> It sounds like there is no source of entropy at this point, and there
> was no cache.  I don't see any changes to the random device since this
> was working.  Does anyone have a guess what to look for?  A bisect
> would be rather laborious, building a modified SD card each time,
> even if just testing kernel changes.  Any other suggestions?
> 
> An excerpt from /var/log/messages during this time is appended.
> 
>   Mike
> 
> Jan 27 10:38:48 generic kernel: umass0 on uhub0
> Jan 27 10:38:48 generic kernel: umass0:  3.00/93.01, addr 2> on usbus0
> Jan 27 10:38:48 generic kernel: umass0:  SCSI over Bulk-Only; quirks = 0x8100
> Jan 27 10:38:48 generic kernel: umass0:0:0: Attached to scbus0
> Jan 27 10:38:48 generic kernel: da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
> Jan 27 10:38:48 generic kernel: da0:  Fixed Direct Access 
> SPC-4 SCSI device
> Jan 27 10:38:48 generic kernel: da0: Serial Number 40118905201B
> Jan 27 10:38:48 generic kernel: da0: 400.000MB/s transfers
> Jan 27 10:38:48 generic kernel: da0: 228936MB (468862128 512 byte sectors)
> Jan 27 10:38:48 generic kernel: da0: quirks=0x2
> Jan 27 10:38:48 generic kernel: random: randomdev_wait_until_seeded unblock 
> wait
> Jan 27 10:38:48 generic syslogd: last message repeated 48 times
> Jan 27 10:38:48 generic kernel: random: unblocking device.
> Jan 27 10:38:48 generic kernel: GEOM_PART: mmcsd0s2 was automatically resized.
> Jan 27 10:38:48 generic kernel:   Use `gpart commit mmcsd0s2` to save changes 
> or `gpart undo mmcsd0s2` to revert them.
> Jan 27 10:38:48 generic kernel: lo0: link state changed to UP


Later material . . .

On 2022-Feb-2, at 01:40, Jesper Schmitz Mouridsen  wrote:
> 
> On 31.01.2022 22.20, Mark Millard wrote:
>> Mike Karels  wrote on
>> Date: Mon, 31 Jan 2022 12:27:41 -0600 :
>>> A bisect
>>> would be rather laborious, building a modified SD card each time,
>>> even if just testing kernel changes.  Any other suggestions?
>> Historically I've used:
>> https://artifact.ci.freebsd.org/snapshot/main/?C=M=D
>> and the likes of kernel.txz (or more) from, for example:
>> https://artifact.ci.freebsd.org/snapshot/main/b4cc5d63b6112746598d21413c9800a43171da52/arm64/aarch64/?C=M=D
>> to update just the kernel (or whatever) and rebooted.
>> (It can help to have a somewhat older world that is
>> left in place instead of running newer worlds on older
>> kernels. Avoiding needing got update world as well has
>> been helpful when testing for kernel issues.)
>> This avoids building the kernels and allows a somewhat
>> bisect like activity until some subrange has no
>> arm64/aarch64 artifacts available.
>> One can sometimes run into the dates for the sort for:
>> https://artifact.ci.freebsd.org/snapshot/main/?C=M=D
>> not matching up well with the dates on the files of
>> interest in specific sub directoreis. (Some sort of
>> directory update?) This can make the bisect far more
>> difficult, given the choice to not have the directory
>> names prefixed with text that would sort by a
>> date/time estimate when sorted by name. (Only using
>> the commit id/hash completely randomizes the naming.)
>> ===
>> Mark Millard
>> marklmi at yahoo.com
> Hi
> My bisect gives:
> The latest working is:
> dda9847275da79ccbb2f0b7079b25

Re: randomdev hangs during initial boot of -current on Raspberry Pi

2022-02-02 Thread Jesper Schmitz Mouridsen




On 31.01.2022 22.20, Mark Millard wrote:

Mike Karels  wrote on
Date: Mon, 31 Jan 2022 12:27:41 -0600 :


A bisect
would be rather laborious, building a modified SD card each time,
even if just testing kernel changes.  Any other suggestions?


Historically I've used:

https://artifact.ci.freebsd.org/snapshot/main/?C=M=D

and the likes of kernel.txz (or more) from, for example:

https://artifact.ci.freebsd.org/snapshot/main/b4cc5d63b6112746598d21413c9800a43171da52/arm64/aarch64/?C=M=D

to update just the kernel (or whatever) and rebooted.
(It can help to have a somewhat older world that is
left in place instead of running newer worlds on older
kernels. Avoiding needing got update world as well has
been helpful when testing for kernel issues.)

This avoids building the kernels and allows a somewhat
bisect like activity until some subrange has no
arm64/aarch64 artifacts available.

One can sometimes run into the dates for the sort for:

https://artifact.ci.freebsd.org/snapshot/main/?C=M=D

not matching up well with the dates on the files of
interest in specific sub directoreis. (Some sort of
directory update?) This can make the bisect far more
difficult, given the choice to not have the directory
names prefixed with text that would sort by a
date/time estimate when sorted by name. (Only using
the commit id/hash completely randomizes the naming.)


===
Mark Millard
marklmi at yahoo.com



Hi
My bisect gives:
The latest working is:
dda9847275da79ccbb2f0b7079b250e28b3b3b2a
The excact following commit:
74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is bad.
So  74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 is where the problem starts 
for me.
Hope that someone can explain why 
74cf7cae4d2238ae6d1c949b2bbd077e1ab33634 does block entropy/random 
seeding on first boot around growfs invocation on arm64

/Jsm



Re: randomdev hangs during initial boot of -current on Raspberry Pi

2022-01-31 Thread Mark Millard
Mike Karels  wrote on
Date: Mon, 31 Jan 2022 12:27:41 -0600 :

> A bisect
> would be rather laborious, building a modified SD card each time,
> even if just testing kernel changes.  Any other suggestions?

Historically I've used:

https://artifact.ci.freebsd.org/snapshot/main/?C=M=D

and the likes of kernel.txz (or more) from, for example:

https://artifact.ci.freebsd.org/snapshot/main/b4cc5d63b6112746598d21413c9800a43171da52/arm64/aarch64/?C=M=D

to update just the kernel (or whatever) and rebooted.
(It can help to have a somewhat older world that is
left in place instead of running newer worlds on older
kernels. Avoiding needing got update world as well has
been helpful when testing for kernel issues.)

This avoids building the kernels and allows a somewhat
bisect like activity until some subrange has no
arm64/aarch64 artifacts available.

One can sometimes run into the dates for the sort for:

https://artifact.ci.freebsd.org/snapshot/main/?C=M=D

not matching up well with the dates on the files of
interest in specific sub directoreis. (Some sort of
directory update?) This can make the bisect far more
difficult, given the choice to not have the directory
names prefixed with text that would sort by a
date/time estimate when sorted by name. (Only using
the commit id/hash completely randomizes the naming.)


===
Mark Millard
marklmi at yahoo.com




randomdev hangs during initial boot of -current on Raspberry Pi

2022-01-31 Thread Mike Karels
I hadn't updated my Raspberry Pi 4B running -current for a couple of
months, so I booted the latest snapshot (Jan 27).  It hangs when it
does the "growfs" step, expanding the root partition and fs to fill
the SD card.  When it hangs, it prints this every 10 seconds or so:

random: randomdev_wait_until_seeded unblock wait

I waited several minutes the first time, and 20 minutes on another trial.
If I hold down the return key on the serial console, the device unblocks
and the boot continues.  This only happens on the initial boot, when the
growfs script runs.  The hang happens on a Raspberry Pi 3B+ as well.
It also happens with the two-week-old snapshot, but not the Nov 25
snapshot.  The program that's running during the hang is awk, doing
a read, according to ^T; the script uses awk to parse output from
mount, glabel, and sysctl.

It sounds like there is no source of entropy at this point, and there
was no cache.  I don't see any changes to the random device since this
was working.  Does anyone have a guess what to look for?  A bisect
would be rather laborious, building a modified SD card each time,
even if just testing kernel changes.  Any other suggestions?

An excerpt from /var/log/messages during this time is appended.

Mike

Jan 27 10:38:48 generic kernel: umass0 on uhub0
Jan 27 10:38:48 generic kernel: umass0:  on usbus0
Jan 27 10:38:48 generic kernel: umass0:  SCSI over Bulk-Only; quirks = 0x8100
Jan 27 10:38:48 generic kernel: umass0:0:0: Attached to scbus0
Jan 27 10:38:48 generic kernel: da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
Jan 27 10:38:48 generic kernel: da0:  Fixed Direct Access 
SPC-4 SCSI device
Jan 27 10:38:48 generic kernel: da0: Serial Number 40118905201B
Jan 27 10:38:48 generic kernel: da0: 400.000MB/s transfers
Jan 27 10:38:48 generic kernel: da0: 228936MB (468862128 512 byte sectors)
Jan 27 10:38:48 generic kernel: da0: quirks=0x2
Jan 27 10:38:48 generic kernel: random: randomdev_wait_until_seeded unblock wait
Jan 27 10:38:48 generic syslogd: last message repeated 48 times
Jan 27 10:38:48 generic kernel: random: unblocking device.
Jan 27 10:38:48 generic kernel: GEOM_PART: mmcsd0s2 was automatically resized.
Jan 27 10:38:48 generic kernel:   Use `gpart commit mmcsd0s2` to save changes 
or `gpart undo mmcsd0s2` to revert them.
Jan 27 10:38:48 generic kernel: lo0: link state changed to UP