The tape390 driver in Linux 2.4.7-SuSE-SMP is refusing to recognise
a 3490 that's attached under z/VM 4.1.0. It's apparently seeing the
CU type as 3990 whereas the driver source (for 2.4.17 anyway) is
apparently expecting to see 3480 or 3490. The relevant line from
the dmesg output when the device attached is:

    T390:No matching discipline for cu_type 3990 found, ignoring device 0181.

Does anyone recognise this?

There's a bunch of additional facts which might be complicating the
issue: here's the full information.
The distribution is from the pre-release SLES7-to-be so there may be
a kernel issue with what came with that.

The z/VM 4.1.0 is running second-level in an ordinary class G guest
on another VM system (I can't remember the first-level VM version and
I'm not dialled into the IBM intranet right now). The real 3490 tape
was attached to my ZVM410-running guest and I then attached it to the
Linux guest running under that. That guest certainly believes it has
a 3490 tape at address 181:

# hcp q tape
TAPE 0181 ON DEV  0181 3490 R/W SUBCHANNEL = 0014

Loading up the tape390 module (before the tape was attached) gives:

# modprobe tape390 tape=0181-0184
produces dmesg output:
    T390:IBM S/390 Tape Device Driver (v1.01).
    T390:(C) IBM Deutschland Entwicklung GmbH, 2000
    T390:character device frontend   : built in
    T390:block device frontend       : built in
    T390:support for 3480 compatible : built in
    T390:support for 3490 compatible : built in
    T390:Using ranges supplied in parameters, disabling autoprobe mode.
    TCHAR:<3> tape gets major 253 for character device
    TBLOCK:<3> tape gets major 254 for block device

(Don't worry about the major number being 253: cpint got 254 first
and I mknod'd the right device nodes, though it's not relevant
because the problem arises before the device nodes ever get used.)

When I did the ATTACH 181 TO LINUX2 from MAINT, we get dmesg output:

    s390_do_machine_check : starting ...
    crw_info : looking for CRWs ...
    crw_info : CRW reports slct=0, oflw=0, chn=0, rsc=3, anc=1, erc=4, rsid=14
    s390_do_machine_check : done
    mach_handler : wakeup ...
    do_crw_pending : starting ...
    do_crw_pending : source is subchannel 0014
    do_crw_pending : subchannel validation - start ...
    do_crw_pending : subchannel validation - done
    do_crw_pending : ioinfo at 052EAE00
    do_crw_pending : device recognition - start ...
    do_crw_pending : device recognition - done
    T390:No matching discipline for cu_type 3990 found, ignoring device 0181.
    do_crw_pending : done
    mach_handler : nothing to do, sleeping
    mach_handler : waiting for wakeup

Note the cu_type 3990 which is causing it to ignore the device.
It makes no difference if I rmmod the module, then re-load it with
modprobe (meaning that now the tape device exists *before* the
driver module loads rather than relying on the dynamic attachment):
the output in this case is:

    # rmmod tape390
    produced dmesg output:
    debug: unregistering tape

    # modprobe tape390 tape=0181-0184
    produced dmesg output:
    T390:IBM S/390 Tape Device Driver (v1.01).
    T390:(C) IBM Deutschland Entwicklung GmbH, 2000
    T390:character device frontend   : built in
    T390:block device frontend       : built in
    T390:support for 3480 compatible : built in
    T390:support for 3490 compatible : built in
    T390:Using ranges supplied in parameters, disabling autoprobe mode.
    TCHAR:<3> tape gets major 253 for character device
    TBLOCK:<3> tape gets major 254 for block device

So it's not even bothering to mention the ignored tape this time.
"cat /proc/tapedevices" shows just a header line with no listed
devices.

Am I missing something obvious?

--Malcolm

--
Malcolm Beattie <[EMAIL PROTECTED]>
Linux Technical Consultant
IBM EMEA Enterprise Server Group...
...from home, speaking only for myself

Reply via email to