Date: Thu, 16 May 2024 08:58:54 +0800 From: Zhenlei Huang <zlei@FreeBSD.org> To: Mike Karels <karels@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-branches@freebsd.org" <dev-commits-src-branches@FreeBSD.org> Subject: Re: git: b827afb9e3a7 - releng/14.1 - Revert "intrng: switch from MAXCPU to mp_ncpus" Message-ID: <88AD738C-4E2C-430D-8AE1-D1C7A633B977@FreeBSD.org> In-Reply-To: <202405151635.44FGZxAS021246@gitrepo.freebsd.org> References: <202405151635.44FGZxAS021246@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On May 16, 2024, at 12:35 AM, Mike Karels <karels@FreeBSD.org> wrote: >=20 > The branch releng/14.1 has been updated by karels: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3Db827afb9e3a7aaaa2da7d101c46881c6= 46d4df2f >=20 > commit b827afb9e3a7aaaa2da7d101c46881c646d4df2f > Author: Mike Karels <karels@FreeBSD.org> > AuthorDate: 2024-05-14 22:44:58 +0000 > Commit: Mike Karels <karels@FreeBSD.org> > CommitDate: 2024-05-15 16:35:38 +0000 >=20 > Revert "intrng: switch from MAXCPU to mp_ncpus" >=20 > This reverts commit b4d11915c73f199501672b278be86e1f63790036. > This is a direct commit to stable/14. The change breaks booting > on older Raspberry Pi 4's, although that works on main. The cause Emm, I think this revert affects other arch also. Does this have large = impact ? If yes, and only older Paspberry Pi 4 is to be fixed, why not add conditional compile #if = directive for Paspberry Pi 4 instead ? For amd64 the MAXCPU has been bumped from 256 to 1024 [1]. That is large = IMO. 1. 9051987e40c5 amd64: Bump MAXCPU to 1024 (from 256) > is unknown. The original commit should be redone on stable/14 > if/when it catches up with main. >=20 > (cherry picked from commit = 3e627553bbd791a4f73eaeea2c2d795fd4e0ee70) >=20 > Approved-by: re (cperciva) > --- > sys/kern/subr_intr.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) >=20 > diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c > index 49fe20cdc890..6535c42f2404 100644 > --- a/sys/kern/subr_intr.c > +++ b/sys/kern/subr_intr.c > @@ -175,11 +175,11 @@ intr_irq_init(void *dummy __unused) >=20 > /* > * - 2 counters for each I/O interrupt. > - * - mp_maxid + 1 counters for each IPI counters for SMP. > + * - MAXCPU counters for each IPI counters for SMP. > */ > nintrcnt =3D intr_nirq * 2; > #ifdef SMP > - nintrcnt +=3D INTR_IPI_COUNT * (mp_maxid + 1); > + nintrcnt +=3D INTR_IPI_COUNT * MAXCPU; > #endif >=20 > intrcnt =3D mallocarray(nintrcnt, sizeof(u_long), M_INTRNG, > @@ -312,18 +312,18 @@ intr_ipi_setup_counters(const char *name) > mtx_lock(&isrc_table_lock); >=20 > /* > - * We should never have a problem finding mp_maxid + 1 = contiguous > - * counters, in practice. Interrupts will be allocated = sequentially > - * during boot, so the array should fill from low to high index. = Once > - * reserved, the IPI counters will never be released. Similarly, = we > - * will not need to allocate more IPIs once the system is = running. > + * We should never have a problem finding MAXCPU contiguous = counters, > + * in practice. Interrupts will be allocated sequentially during = boot, > + * so the array should fill from low to high index. Once = reserved, the > + * IPI counters will never be released. Similarly, we will not = need to > + * allocate more IPIs once the system is running. > */ > - bit_ffc_area(intrcnt_bitmap, nintrcnt, mp_maxid + 1, &index); > + bit_ffc_area(intrcnt_bitmap, nintrcnt, MAXCPU, &index); > if (index =3D=3D -1) > panic("Failed to allocate %d counters. Array = exhausted?", > - mp_maxid + 1); > - bit_nset(intrcnt_bitmap, index, index + mp_maxid); > - for (i =3D 0; i < mp_maxid + 1; i++) { > + MAXCPU); > + bit_nset(intrcnt_bitmap, index, index + MAXCPU - 1); > + for (i =3D 0; i < MAXCPU; i++) { > snprintf(str, INTRNAME_LEN, "cpu%d:%s", i, name); > intrcnt_setname(str, index + i); > } Best regards, Zhenlei
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?88AD738C-4E2C-430D-8AE1-D1C7A633B977>