Date: Mon, 21 Jul 2025 12:37:23 -0400 From: John Baldwin <jhb@FreeBSD.org> To: Mark Johnston <markj@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: cc21f6e53f43 - main - amd64: Make a comment less confusing Message-ID: <35003f37-9e55-4a92-ae6e-58b35409700b@FreeBSD.org> In-Reply-To: <202507211458.56LEwD36053783@gitrepo.freebsd.org> References: <202507211458.56LEwD36053783@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7/21/25 10:58, Mark Johnston wrote: > The branch main has been updated by markj: > > URL: https://cgit.FreeBSD.org/src/commit/?id=cc21f6e53f43f0e4c082222460d90ea581f3e2d6 > > commit cc21f6e53f43f0e4c082222460d90ea581f3e2d6 > Author: Mark Johnston <markj@FreeBSD.org> > AuthorDate: 2025-07-21 13:33:31 +0000 > Commit: Mark Johnston <markj@FreeBSD.org> > CommitDate: 2025-07-21 14:57:58 +0000 > > amd64: Make a comment less confusing > > Also merge two printf()s. No functional change intended. > > Reviewed by: kib > MFC after: 1 week > Differential Revision: https://reviews.freebsd.org/D51452 > --- > sys/amd64/amd64/trap.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c > index d9a5f7096a6e..f3469ed5e2bc 100644 > --- a/sys/amd64/amd64/trap.c > +++ b/sys/amd64/amd64/trap.c > @@ -37,7 +37,6 @@ > * SUCH DAMAGE. > */ > > -#include <sys/cdefs.h> > /* > * AMD64 Trap and System call handling > */ > @@ -898,9 +897,9 @@ trap_diag(struct trapframe *frame, vm_offset_t eva) > printf("\n\nFatal trap %d: %s while in %s mode\n", type, > type < nitems(trap_msg) ? trap_msg[type] : UNKNOWN, > TRAPF_USERMODE(frame) ? "user" : "kernel"); > - /* two separate prints in case of a trap on an unmapped page */ > - printf("cpuid = %d; ", PCPU_GET(cpuid)); > - printf("apic id = %02x\n", PCPU_GET(apic_id)); > + /* Print these separately in case pcpu accesses trap. */ > + printf("cpuid = %d; apic id = %02x\n", PCPU_GET(cpuid), > + PCPU_GET(apic_id)); > if (type == T_PAGEFLT) { > printf("fault virtual address = 0x%lx\n", eva); > printf("fault code = %s %s %s%s%s, %s\n", > @@ -1021,9 +1020,9 @@ dblfault_handler(struct trapframe *frame) > frame->tf_cs, frame->tf_ss, frame->tf_ds, frame->tf_es, > frame->tf_fs, frame->tf_gs, > rdmsr(MSR_FSBASE), rdmsr(MSR_GSBASE), rdmsr(MSR_KGSBASE)); > - /* two separate prints in case of a trap on an unmapped page */ > - printf("cpuid = %d; ", PCPU_GET(cpuid)); > - printf("apic id = %02x\n", PCPU_GET(apic_id)); > + /* Print these separately in case pcpu accesses trap. */ > + printf("cpuid = %d; apic id = %02x\n", PCPU_GET(cpuid), > + PCPU_GET(apic_id)); > panic("double fault"); Eh, if any of the accesses fault you don't get any of the printf, so once you've merged these, the comment is wrong and should just be removed. FWIW, pre-5.0 (maybe pre-4.0?) per-CPU data on i386 used a fixed virtual address that was mapped to different backing pages on each CPU instead of %gs which is why the comment was probably worded that way originally. (This meant, btw, that each CPU had its own set of top-level kernel page table and that cpu_switch had to munge the kernel-half of the top-level page table of a process, which precluded multiple threads in a process.) -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?35003f37-9e55-4a92-ae6e-58b35409700b>