Re: GGI and cli/sti in X

Harald Koenig (koenig@tat.physik.uni-tuebingen.de)
Mon, 30 Mar 1998 15:18:28 +0200


On Mar 29, Pavel Machek wrote:

> > > I get 5 or 6 ughs everytime somone runs X onmy system so I'd say your
> > > correct, the ughs are allways in do_page_fault. The ughs are normal on
> > > any system I've seen with < 16 megs ram. The every once and a while
> >
> > The "Ugh" is logging the fact someone attempted to handle a page fault while
> > having interrupts disabled. This is an extremely bad thing. There are two causes
> >
> > 1. Incorrect kernel code (I think most of these are now dead)
> > 2. Some user process as root which has the misguided idea it can disable
> > interrupts after using the iopl() syscall. Well it can't. Not unless
> > its prepaged everything it needs and mlock()'d those pages
>
> XF86 3.1.2 (latest I have convient access to) does *not* do *any*
> cli()/sti()'s. At least in os-dependend section disable_interrupts()
> is empty function.
>
> > so its either a kernel or an X bug.
>
> ...so I doubt this is X bug. It would be nice if some X hacker joined
> this debate...

more recent XFree86 sources have non-empty xf86DisableInterrupts()
(don't know when this has changed). but if you check XFree86 sources
for S3 and S3/SVGA (that's what I'm falmilar with;) you'll find
that interrupts are _only_ disabled for ICD2061A clock setting (in s3_init_clock())
and for probing clock values for non-programmable clocks (in xf86GetClocks(),
and the latter you can avoid at runtime by specifying clock values in config file;
and ICD2061A clockchips aren't used anymore). using

disas xf86GetClocks
disas s3_init_clock

in gdb will show that both routines lay pretty well in one page (if they don't,
we'd get many reports for sure;). while this isn't perfect, it can be improved
using mlock() for that routines and it's for sure not something which can _only_
be done using GGI.

Harald

--
All SCSI disks will from now on                     ___       _____
be required to send an email notice                0--,|    /OOOOOOO\
24 hours prior to complete hardware failure!      <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
Harald Koenig,                                         \/\/\/\/\/\/\/\/\/
Inst.f.Theoret.Astrophysik                              //  /     \\  \
koenig@tat.physik.uni-tuebingen.de                     ^^^^^       ^^^^^

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu