Deutsch   English   Français   Italiano  
<vs0mg1$1jef9$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Robert Finch <robfi680@gmail.com>
Newsgroups: comp.arch
Subject: Re: MSI interrupts - Instructions
Date: Wed, 26 Mar 2025 06:56:00 -0400
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <vs0mg1$1jef9$1@dont-email.me>
References: <vqto79$335c6$1@dont-email.me>
 <53b8227eba214e0340cad309241af7b5@www.novabbs.org>
 <3pXAP.584096$FVcd.26370@fx10.iad>
 <795b541375e3e0f53e2c76a55ffe3f20@www.novabbs.org>
 <vNZAP.37553$D_V4.18229@fx39.iad>
 <aceeec2839b8824d52f0cbe709af51e1@www.novabbs.org>
 <eM_AP.81303$8rz3.7843@fx37.iad> <vr2nj9$2goqe$1@dont-email.me>
 <f2cb846242dbfcef1efa59b92763a965@www.novabbs.org>
 <vr4ovm$9fl5$1@dont-email.me>
 <1681197d3c1af131d6b8cae884f7c9ca@www.novabbs.org>
 <vr7g76$2jnqm$1@dont-email.me> <8BVBP.816276$eNx6.247046@fx14.iad>
 <20250317161132.00004dd9@yahoo.com> <1WZBP.558392$SZca.243157@fx13.iad>
 <vra3bv$teuf$1@dont-email.me> <ohjCP.37185$SVG3.13173@fx42.iad>
 <vrcqcr$3ddah$1@dont-email.me> <ZRCCP.595878$BrX.126145@fx12.iad>
 <vrf712$1h233$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 26 Mar 2025 11:56:01 +0100 (CET)
Injection-Info: dont-email.me; posting-host="ceebc71e485ba32e0d00d9f589df632b";
	logging-data="1685993"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18g26SpBxkjCdoOB1840FgJFqRk9k1cOGs="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Z/zWPw6ReZPLf8ZDWRkMAtDrrz4=
Content-Language: en-US
In-Reply-To: <vrf712$1h233$1@dont-email.me>
Bytes: 2846

Working on a simple OS I thought it might be useful to be able to poll 
for interrupts when interrupts are disabled. I think there may be times 
where it is acceptable to process certain kinds of interrupts even if 
they were disable. So, I added a poll-for-interrupt instruction to the 
architecture. Which just checks for interrupts and continues if there is 
not one. I have seen wait-for-interrupt instructions before, but not 
sure about polling.

I also added a two-up-level return from interrupt instruction. I have 
not seen this in other architectures, but I needed it at one point. 
Interrupt information is stored on an internal stack, and it is tricky 
(slow) to manipulate it for a two-up-level return. It is an eight level 
stack with two or three words of information per level. It was a bit 
much to copy it all in software, so I added the hardware return. But it 
is a lot of extra hardware for a very rare occurrence.

Finding this discussion on interrupts informative. I have only done a 
modicum of work on an OS; tried to get things working with spinlocks.