Index | Thread | Search

From:
Mark Kettenis <mark.kettenis@xs4all.nl>
Subject:
Adjust amd64 IPLs
To:
tech@openbsd.org
Date:
Mon, 01 Jan 2024 19:12:31 +0100

Download raw body.

Thread
On amd64, we only have 240 interrupt vectors, which means they're a
limited.  And unless I'm terribly confused, we're not using 48 of
those because of the way we've assigned the priority levels.  And with
more and more devices supporting multiple interrupt vectors, we can
put these to good use.  So this diff rearranges the levels to make the
additonal vectors available for use.  Since it most likely network
devices that need these, I leave a gap between between IPL_NET and
IPL_SOFTTTY.  That way, it will take longer for IPL_NET interrupts to
spill over into the IPL_SOFTTTY range and mess up the interrupt
priorities.

Now I vagelue remember something about trying something like this
before.  So I want to make sure this doesn't cause any problems.
Therefore I'd appreciate it if people can test this, especially on
machines with lots of network devices.

Thanks,

Mark


Index: arch/amd64/include/intrdefs.h
===================================================================
RCS file: /cvs/src/sys/arch/amd64/include/intrdefs.h,v
retrieving revision 1.22
diff -u -p -r1.22 intrdefs.h
--- arch/amd64/include/intrdefs.h	31 Aug 2021 17:40:59 -0000	1.22
+++ arch/amd64/include/intrdefs.h	1 Jan 2024 17:54:53 -0000
@@ -19,10 +19,10 @@
  *
  */
 #define	IPL_NONE	0x0	/* nothing */
-#define	IPL_SOFTCLOCK	0x4	/* timeouts */
-#define	IPL_SOFTNET	0x5	/* protocol stacks */
-#define	IPL_BIO		0x6	/* block I/O */
-#define	IPL_NET		0x7	/* network */
+#define	IPL_SOFTCLOCK	0x1	/* timeouts */
+#define	IPL_SOFTNET	0x2	/* protocol stacks */
+#define	IPL_BIO		0x3	/* block I/O */
+#define	IPL_NET		0x4	/* network */
 #define	IPL_SOFTTTY	0x8	/* delayed terminal handling */
 #define	IPL_TTY		0x9	/* terminal */
 #define	IPL_VM		0xa	/* memory allocation */