Page MenuHomeFreeBSD

PC64: Get the timestap from the proper OF field

Authored by on Feb 5 2018, 5:23 PM.



After revision rS328534('PPC64: use hwref instead of cpuid'), FreeBSD on
powerpc64 virtual machine panics since it is unable to read the
timebase, showing the following error:

get-property for timebase-frequency on zero phandle
panic: Unable to determine timebase frequency!

With the change above, cpuref->cr_hwref does not contain the phandle
anymore, thus, it never reads the proper CPU entry in OF.

Diff Detail

rS FreeBSD src repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

imp added a comment.Feb 7 2018, 5:40 PM

So I have a memory of OF properties not being NUL terminated. If so, this code is wrong, though it might accidentally be right in some cases.

296 ↗(On Diff #38887)

Is buf NUL terminated?

303 ↗(On Diff #38887)

Is buf NUL terminated?

imp added a comment.Feb 7 2018, 6:51 PM

Turns out IEEE 1275 standard and successors all guarantee that text strings are 1 to 31 characters followed by a NUL byte, so my worry is bogus.

Let me attach a new fix as proposed by Justin

jhibbits requested changes to this revision.Feb 8 2018, 5:31 PM

Fix those two nits, otherwise looks good.

294 ↗(On Diff #39048)

cpus is not a boolean, you should use cpus == 0.

302 ↗(On Diff #39048)

Same as above here.

This revision now requires changes to proceed.Feb 8 2018, 5:31 PM edited the summary of this revision. (Show Details)
jhibbits accepted this revision.Feb 8 2018, 7:11 PM
This revision is now accepted and ready to land.Feb 8 2018, 7:11 PM
This revision was automatically updated to reflect the committed changes.