Fixed bug that was introduced through the previous commit (r875): a warning message...
[mirror/scst/.git] / srpt / ToDo
1 1. Update the OFED wiki entries about SRP and SRPT:
2    * https://wiki.openfabrics.org/tiki-index.php?page=SRP
3    * https://wiki.openfabrics.org/tiki-index.php?page=SRPT+Installation
4
5
6 2. SRPT driver directly uses internal states of SCST core target state
7 machine, which is bad, bad, bad and generally not acceptable. Only dev
8 handler are allowed to use them. That should be fixed.
9
10
11 3. Analyze why memory usage keeps increasing for repeatedly rejected logins.
12
13 Details: openSUSE 11.1, 2.6.29.1 kernel with SCST patches applied (target),
14          SCST trunk r800.
15
16 How to reproduce:
17 * Run the following command on the target system:
18     while true; do echo "$(date) $(cat /proc/meminfo)"; done | tee memlog.txt
19 * Run the following command on the initiator system:
20     for ((i=0;i<100000;i++)); do echo 'id_ext=0002c9030003cca2,ioc_guid=0002c9030003cca2,pkey=ffff,dgid=fe800000000000000002c9030003cca3,service_id=0002c9030003cca3' >/sys/class/infiniband_srp/srp-mlx4_0-1/add_target ; done
21
22 Result:
23
24 * The value of MemFree was decreasing during this test.
25 * The values of Active, Inactive, Active(anon), AnonPages and
26   Committed_AS were all increasing at the same rate as MemFree was
27   decreasing.
28 * No other values in /proc/meminfo changed significantly.
29
30
31 4. Analyze why ib_srpt.ko triggers a kernel oops if ib_srpt is loaded before 
32    opensm is started.
33
34 Details: openSUSE 11.1, 2.6.29.1 kernel with SCST patches applied, SCST trunk r830.
35
36 How to reproduce:
37
38 /etc/init.d/scst stop
39 /etc/init.d/opensmd stop
40 /etc/init.d/openibd stop
41 modprobe scst
42 modprobe ib_srpt
43 /etc/init.d/openibd start
44 dmesg -c >/dev/null
45 /etc/init.d/opensmd start
46 dmesg -c
47
48 Result:
49
50 ib_srpt: ASYNC event= 17 on device= mlx4_0
51 ------------[ cut here ]------------      
52 kernel BUG at kernel/workqueue.c:189!     
53 invalid opcode: 0000 [#1] SMP             
54 last sysfs file: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/infiniband_mad/umad0/port                                                                    
55 CPU 0                                                                           
56 Modules linked in: rdma_ucm rdma_cm iw_cm ib_addr ib_srp scsi_transport_srp scsi_tgt ib_ipoib ib_uverbs ib_umad mlx4_ib ib_srpt scst_vdisk scst ib_cm ib_sa ib_mad ib_core ip6t_LOG ipt_MASQUERADE xt_pkttype xt_TCPMSS xt_tcpudp ipt_LOG xt_limit iptable_nat nf_nat vboxnetflt vboxdrv snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device af_packet ip6t_REJECT nf_conntrack_ipv6 ip6table_raw xt_NOTRACK ipt_REJECT xt_state iptable_raw iptable_filter ip6table_mangle nf_conntrack_netbios_ns nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables ip6table_filter ip6_tables x_tables cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq ipv6 fuse loop dm_mod coretemp snd_hda_codec_atihdmi snd_hda_codec_analog snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_timer snd soundcore i2c_i801 joydev sr_mod serio_raw i2c_core rtc_cmos button snd_page_alloc hid_belkin cdrom pcspkr mlx4_core rtc_core intel_agp rtc_lib sg usbhid hid raid456 async_xor async_memcpy async_tx xor raid0 sd_mod crc_t10dif ehci_hcd uhci_hcd usbcore edd raid1 ext3 mbcache jbd fan ide_pci_generic ide_core ata_generic ata_piix pata_marvell ahci libata scsi_mod thermal processor thermal_sys hwmon [last unloaded: scst]   
57 Pid: 9073, comm: opensm Not tainted 2.6.29.1-scst #2 P5Q DELUXE                 
58 RIP: 0010:[<ffffffff80254a26>]  [<ffffffff80254a26>] queue_work_on+0x56/0x60    
59 RSP: 0018:ffff8801149dbc48  EFLAGS: 00010003                                    
60 RAX: ffff880095c28120 RBX: ffff8801149dbd08 RCX: ffff880095c28118               
61 RDX: 0000000000000000 RSI: ffff88013ec96400 RDI: 0000000000000000               
62 RBP: ffff8801149dbc48 R08: 0000000000000000 R09: 0000000000000006               
63 R10: ffffffff80711480 R11: ffff8801149dbc18 R12: ffff880095c20000               
64 R13: 0000000000000282 R14: ffff8800932a8040 R15: ffff880138453800               
65 FS:  00007f8868e91950(0000) GS:ffffffff80697040(0000) knlGS:0000000000000000    
66 CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b                               
67 CR2: 000000000040d3f0 CR3: 0000000093057000 CR4: 00000000000406e0               
68 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000               
69 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
70 Process opensm (pid: 9073, threadinfo ffff8801149da000, task ffff8800937a3710)
71 Stack:
72  ffff8801149dbc58 ffffffff80254bca ffff8801149dbc68 ffffffff80254be6
73  ffff8801149dbc88 ffffffffa06dcaca ffff880095c28180 ffff8801149dbd08
74  ffff8801149dbcb8 ffffffffa0629b49 ffff8801149dbcb8 0000000000000001
75 Call Trace:
76  [<ffffffff80254bca>] queue_work+0x1a/0x20
77  [<ffffffff80254be6>] schedule_work+0x16/0x20
78  [<ffffffffa06dcaca>] srpt_event_handler+0xda/0xe0 [ib_srpt]
79  [<ffffffffa0629b49>] ib_dispatch_event+0x39/0x70 [ib_core]
80  [<ffffffffa06ea186>] mlx4_ib_process_mad+0x3e6/0x430 [mlx4_ib]
81  [<ffffffffa063d634>] ib_post_send_mad+0x374/0x6f0 [ib_mad]
82  [<ffffffff80265ad5>] ? futex_wake+0x105/0x120
83  [<ffffffffa05bf6d8>] ib_umad_write+0x4a8/0x5c0 [ib_umad]
84  [<ffffffff802c1c5b>] vfs_write+0xcb/0x170
85  [<ffffffff802c1df0>] sys_write+0x50/0x90
86  [<ffffffff8020c49b>] system_call_fastpath+0x16/0x1b
87 Code: 8b 46 20 48 8b 06 45 85 c0 48 f7 d0 0f 45 3d 12 73 3a 00 48 89 ce 48 63 d7 48 8b 3c d0 e8 e3 fe ff ff ba 01 00 00 00 c9 89 d0 c3 <0f> 0b eb fe 66 0f 1f 44 00 00 55 48 89 e5 53 48 8d 5d b0 48 83
88 RIP  [<ffffffff80254a26>] queue_work_on+0x56/0x60
89  RSP <ffff8801149dbc48>
90 ---[ end trace 8dc16c5c1664b10b ]---
91
92
93 5. rmmod ib_srpt under load crashes.
94
95
96 6. The initiator names supplied to the SCST core contain the target port name,
97    which is wrong. Nobody identifies a man by the door through which he entered.
98    Instead, a man has a name by which he is identified through his whole life.
99
100
101 7. Analyze and document the implications of
102    sdev->mr = ib_get_dma_mr(sdev->pd, IB_ACCESS_LOCAL_WRITE).
103
104
105 8. Enable and test the LUN_RESET task management function.