Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Dec 1998 14:30:14 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        geoffb@demon.net, mike@smith.net.au
Cc:        andyf@speednet.com.au, bde@zeta.org.au, freebsd-current@FreeBSD.ORG, johan@granlund.nu, ortmann@sparc.isl.net
Subject:   Re: sio breakage
Message-ID:  <199812010330.OAA20453@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> I was assuming the serial interface which is a fixed one breaking out of
>> the back of the Laptop had nothing to do with the PCMCIA, 
>
>You're quite correct; it doesn't.  There's *something* holding up both 
>your interrupt handlers and the tty soft interrupt; maybe even possibly the 
>same thing that causes the "calcru: negative time for ..." messages.

something()
{
	asm("cli");
	asm("sti");
}

This disables interrupts for 0 user instructions, but if a pagefault
occurs for reading the "sti" instruction, it disables interrupts for
hundreds, thousands or millions of kernel instructions.

something_more_likely()
{
	asm("cli");
	var = 0;
	asm("sti");
}

This disables interrupts for 1 or 2 user instructions, but if a pagefault
occurs for reading a critical instruction or more likely for accessing
the variable, it disables interrupts for hundreds, thousands or millions
of kernel instructions.

Fixes:
kernel: send a fatal signal to applications that do this.
applications: don't do this.  If interrupts must be disabled, then all
              critical code and data must be within one page.

Bruce

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812010330.OAA20453>