Re: RT patch acceptance

Andrea Arcangeli
2005-06-01T21:09:42Z

On Wed, Jun 01, 2005 at 01:46:12PM -0700, Bill Huey wrote:
> Where ? Point it out.

Why don't you run grep yourself, this is only drivers/

./acpi/processor_idle.c: local_irq_disable();
./acpi/processor_throttling.c: local_irq_disable();
./acpi/processor_throttling.c: local_irq_disable();
./block/acsi_slm.c: local_irq_disable();
./block/ataflop.c: local_irq_disable(); * disabled... so must save the IPL for later */
./char/amiserial.c: local_irq_disable();
./char/amiserial.c: local_irq_disable();
./char/ds1302.c: local_irq_disable();
./char/ds1302.c: local_irq_disable();
./ide/ide-io.c: local_irq_disable();
./ide/ide-taskfile.c: local_irq_disable();
./ide/legacy/hd.c: local_irq_disable();
./ide/legacy/hd.c: local_irq_disable();
./input/joystick/analog.c: local_irq_disable();
./macintosh/via-pmu.c: local_irq_disable();
./macintosh/via-pmu.c: local_irq_disable();
./macintosh/via-pmu.c: local_irq_disable();
./mtd/chips/cfi_cmdset_0001.c: local_irq_disable();
./mtd/chips/cfi_cmdset_0001.c: local_irq_disable();
./mtd/chips/cfi_probe.c:#define xip_disable() local_irq_disable()
./mtd/chips/cfi_util.c: local_irq_disable();
./net/3c59x.c: local_irq_disable();
./net/8139cp.c: local_irq_disable();
./net/8139too.c: local_irq_disable();
./net/amd8111e.c: local_irq_disable();
./net/hamradio/baycom_par.c: local_irq_disable();
./net/hamradio/baycom_ser_fdx.c: local_irq_disable();
./net/hamradio/baycom_ser_hdx.c: local_irq_disable();
./net/hamradio/scc.c: local_irq_disable();
./net/pcmcia/fmvj18x_cs.c: local_irq_disable();
./net/smc91x.c: local_irq_disable(); \
./s390/cio/cio.c: local_irq_disable();
./scsi/53c7xx.c: local_irq_disable();
./scsi/53c7xx.c: local_irq_disable(); /* Freeze request queues */
./scsi/53c7xx.c: local_irq_disable();
./scsi/BusLogic.c: local_irq_disable();
./scsi/atari_NCR5380.c: local_irq_disable(); /* Freeze request queues */
./scsi/atari_NCR5380.c: local_irq_disable();
./scsi/atari_NCR5380.c: local_irq_disable();
./scsi/scsi.c: local_irq_disable();
./scsi/scsi.c: local_irq_disable();
./scsi/sun3_NCR5380.c: local_irq_disable(); /* Freeze request queues */
./scsi/sun3_NCR5380.c: local_irq_disable();
./scsi/sun3_NCR5380.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/68360serial.c: local_irq_disable();
./serial/mcfserial.c: local_irq_disable();
./serial/mcfserial.c: local_irq_disable();
./serial/mcfserial.c: local_irq_disable();
./serial/mcfserial.c: local_irq_disable();
./usb/core/hcd.c: local_irq_disable ();
./usb/gadget/inode.c: local_irq_disable();
./usb/gadget/pxa2xx_udc.c: local_irq_disable();
./usb/gadget/pxa2xx_udc.c: local_irq_disable();
./usb/gadget/pxa2xx_udc.c: local_irq_disable();
./video/aty/radeon_base.c: local_irq_disable();

> Long paths are audited and correct when instrumentation is triggered
> by it. Look at the patch.

As said even if all the above is audited, it _can_ break over time,
while it wouldn't break with RTAI/rtlinux even if you infinite loop and
hang in there.

> Doesn't have to yet. Drivers are case by case problem as expected. Look
> at the patch.

The "case by case" appoach is the problem, so that you plug an usb
gadget in, and your robot breaks and damages stuff. That would never
happen with RTAI/rtlinux. (ok, a bad driver could corrupt memory anyway,
but introducing a latency problem is much easier than introducing a
memory corruption)

> Wrong. I did a parallel implementation of this patch and I understand
> the issues very clearly. Deterministic single kernel RT isn't new or
> novel in the RTOS world (LynxOS, SGI IRIX, ...).

Don't change topic, you said local_irq_disable isn't smp safe in
drivers...

> Listen to what Ingo, me and others have said and read the patch. You're

Ingo just said that making local_irq_disable a "soft-cli" is planned.

> into the patch. Really, read the patch and stop asking question, spreading
> FUD until then.

You're the one spreading FUD that preempt-RT is as good as RTAI, and
even worse than local_irq_disable isn't used in drivers or not safe to
use in smp.