Messages in this thread | | | Date | Thu, 21 May 1998 18:03:17 +0200 | From | Andreas Haumer <> | Subject | Linux-2.0.34pre15: ISDN patch and test results |
| |
Hi Alan,
Alan Cox wrote: > > At least one reason this can occur is that the ISDN net layer when it > fails to dial appears to call icmp_send() to send an error reply without > checking if the packet it is erroring happens to be IP. 99% of the time > that will send crap, 1% it'll blow up. >
It seems your guess was right :-)
In 2.0.34pre15 I changed function isdn_net_unreachable from isdn_net.c to the following:
static void isdn_net_unreachable(struct device *dev, struct sk_buff *skb, char *reason) { /* We must only icmp IP packets. Non IP protocols have no 'Im sorry we are down right now' messages */ if(skb->protocol==htons(ETH_P_IP)) { printk(KERN_DEBUG "isdn_net: %s: %s, send ICMP\n", dev->name, reason); icmp_send(skb, ICMP_DEST_UNREACH, ICMP_HOST_UNREACH, 0 #if (LINUX_VERSION_CODE < 0x02010f) /* 2.1.15 */ ,dev #endif ); } else printk(KERN_DEBUG "isdn_net: cannot send ICMP for non-IP packet (protocol=%#4.4x)\n", (int)ntohs(skb->protocol)); }
After rebootimg, the system didn't crash like it did before, and I found the following syslog entries: [...] May 21 17:29:59 kafka kernel: HiSax: debugging flags card 1 set to 1f May 21 17:30:00 kafka kernel: HiSax: debugging flags card 1 set to 1f May 21 17:30:01 kafka kernel: isdn_net: cannot send ICMP for non-IP packet (protocol=0x0000) May 21 17:30:07 kafka last message repeated 3 times May 21 17:30:07 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:08 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:09 kafka kernel: isdn_net: cannot send ICMP for non-IP packet (protocol=0x0000) May 21 17:30:09 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:10 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:11 kafka kernel: isdn_net: cannot send ICMP for non-IP packet (protocol=0x0000) May 21 17:30:11 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:12 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:13 kafka kernel: isdn_net: cannot send ICMP for non-IP packet (protocol=0x0000) May 21 17:30:13 kafka kernel: isdn_net: isdn0: No phone number, send ICMP May 21 17:30:15 kafka kernel: isdn_net: cannot send ICMP for non-IP packet (protocol=0x0000) May 21 17:30:47 kafka last message repeated 16 times May 21 17:31:49 kafka last message repeated 31 times May 21 17:32:51 kafka last message repeated 31 times [...]
It seems, the ISDN driver doesn't care about skb protocol type when sending ICMP messages...
I will submit a bug report to the isdn4linux people. I'm not sure what the current status of isdn4linux for Linux-2.0 is. The version included in your 2.0.34pre patches (HiSax Version 2.1) seems outdated: The current drivers for Linux-2.0 from the CVS tree have HiSax Version 2.9. I think it's too late to include this new driver, but maybe you could add just the small patch to prevent 2.0.34 from crashing?
I'll try HiSax Version 2.9 next...
- andreas
PS: I'm currently stress-testing 2.0.34pre15 (+raid145 patches) on my test-machines (you remember the setup?): so far it looks very good!
Look at the stats for the communication-server test-system (machine 3) and smile:
root@duras {529} # uptime 5:51pm up 1 day, 20:08, 4 users, load average: 4.90, 3.88, 3.42
root@duras {530} # cat /proc/stat cpu 3385872 6783351 5357856 362403 disk 468733 662711 662273 664361 disk_rio 370868 438420 435498 436460 disk_wio 97865 224291 226775 227901 disk_rblk 1276216 876894 871050 872974 disk_wblk 198040 448588 453556 455808 page 31091097 21610432 swap 89229 588 intr 187225660 15889482 708 0 0 0 0 0 0 2 167540552 1821445 1973470 0 1 0 0 ctxt 223109651 btime 895607001 processes 1379148
root@duras {531} # netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags lo 3584 0 40118684 0 0 0 40118684 0 0 0 BLRU eth0 1500 0 107347102 0 0 0 95378399 2 0 0 BRU
root@duras {532} # cat /proc/scsi/aic7xxx/0 Adaptec AIC7xxx driver version: 5.0.15/3.2.4 Compile Options: AIC7XXX_RESET_DELAY : 3 AIC7XXX_TAGGED_QUEUEING: Adapter Support Enabled Check below to see which devices use tagged queueing AIC7XXX_PAGE_ENABLE : Enabled (This is no longer an option) AIC7XXX_PROC_STATS : Enabled
Adapter Configuration: SCSI Adapter: Adaptec AHA-294X Ultra SCSI host adapter Ultra Wide Controller Programmed I/O Base: d400 Adaptec SCSI BIOS: Enabled IRQ: 10 SCBs: Active 0, Max Active 4, Allocated 30, HW 16, Page 255 Interrupts: 1821798 BIOS Control Word: 0x18a6 Adapter Control Word: 0x005f Extended Translation: Enabled SCSI Bus Reset: Enabled Disconnect Enable Flags: 0xffff Ultra Enable Flags: 0xffef Tag Queue Enable Flags: 0x0000 Ordered Queue Tag Flags: 0x0000 Default Tag Queue Depth: 30 Tagged Queue By Device array for aic7xxx host instance 0: {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255} Actual queue depth per device for aic7xxx host instance 0: {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
Statistics: (scsi0:0:0:0) nxfers 464555 (369310 read;95245 written) blks(512) rd=5643661; blks(512) wr=443054 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 116327 45167 129931 49429 10058 10020 8377 0 Writes: 0 0 83239 7558 2342 655 539 205 707 0
(scsi0:0:4:0) nxfers 49034 (49034 read;0 written) blks(512) rd=2055097; blks(512) wr=0 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 0 12770 15461 1695 10586 3742 4779 0 Writes: 0 0 0 0 0 0 0 0 0 0
(scsi0:0:8:0) nxfers 660562 (437959 read;222603 written) blks(512) rd=11014253; blks(512) wr=8554784 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 140334 46280 59685 62770 45740 72390 10759 0 Writes: 0 0 86962 28315 18546 17955 22650 24181 23994 0
(scsi0:0:9:0) nxfers 660145 (435039 read;225106 written) blks(512) rd=11006777; blks(512) wr=8559248 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 138260 46059 58747 62885 45880 72627 10580 0 Writes: 0 0 86836 30656 18887 17817 22867 24100 23943 0
root@duras {533} # cat /proc/scsi/aic7xxx/1 Adaptec AIC7xxx driver version: 5.0.15/3.2.4 Compile Options: AIC7XXX_RESET_DELAY : 3 AIC7XXX_TAGGED_QUEUEING: Adapter Support Enabled Check below to see which devices use tagged queueing AIC7XXX_PAGE_ENABLE : Enabled (This is no longer an option) AIC7XXX_PROC_STATS : Enabled
Adapter Configuration: SCSI Adapter: Adaptec AHA-294X Ultra SCSI host adapter Ultra Wide Controller Programmed I/O Base: d000 Adaptec SCSI BIOS: Enabled IRQ: 11 SCBs: Active 0, Max Active 3, Allocated 30, HW 16, Page 255 Interrupts: 1973470 BIOS Control Word: 0x18a6 Adapter Control Word: 0x005e Extended Translation: Enabled SCSI Bus Reset: Enabled Disconnect Enable Flags: 0xffff Ultra Enable Flags: 0xffff Tag Queue Enable Flags: 0x0000 Ordered Queue Tag Flags: 0x0000 Default Tag Queue Depth: 30 Tagged Queue By Device array for aic7xxx host instance 1: {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255} Actual queue depth per device for aic7xxx host instance 1: {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
Statistics: (scsi1:0:8:0) nxfers 662298 (436060 read;226238 written) blks(512) rd=11010483; blks(512) wr=8558982 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 138210 47344 58550 62879 45900 72490 10686 0 Writes: 0 0 87716 30609 19350 17853 22669 24094 23947 0
(scsi1:0:9:0) nxfers 660908 (434172 read;226736 written) blks(512) rd=11001755; blks(512) wr=8548498 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 136582 46819 59472 62222 45736 72744 10596 0 Writes: 0 0 86217 32347 19987 17693 22558 24017 23917 0
(scsi1:0:10:0) nxfers 658639 (437647 read;220992 written) blks(512) rd=11009455; blks(512) wr=8559930 < 512 512-1K 1-2K 2-4K 4-8K 8-16K 16-32K 32-64K 64-128K >128K Reads: 0 1 139152 46845 59985 62914 45284 72967 10499 0 Writes: 0 0 87657 26505 18305 17448 22739 24239 24099 0
-- Andreas Haumer | email: andreas@xss.co.at | PGP key available *x Software + Systeme | phone: +43.1.6001508 | on request. Buchengasse 67/8 | +43.664.3004449 | A-1100 Vienna, Austria | fax: +43.1.6001507 |
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |