Skip to contentSkip to conversation

2.6.0-test8 scsi logging not working

DISCUSSION [email protected] 4 participants 4 messages Oct 24, 2003

lore
Share & tools
lore
#0 lore raw

I dont take the mail list dist just answer here in and i will see the answer.

The problem:

I thought
echo "scsi log all" >/proc/scsi/scsi
with
scsi_logging=y in .config
would turn on kernel scsi logging and put some notification line in /var/log/messages
indicating scsi logging was now active at such and such a level

that is not happening and I have a external drive connected via usb talking scsi that cannot be unmounted and i need to trace scsi action so I can post here.

lsscsi output is

[0:0:0:0]    disk    USB 2.0  Storage Device   0100  /dev/sda
[1:0:0:0]    disk    Linux    scsi_debug       0004  /dev/sdb

any help would be appreciated.
thanks
jt
--
Please respond to
[email protected]
Not to [email protected]

#1 lore raw

mmap to Access PCI space?

Hi All,
I need to access a couple of SATA chips from a user-mode program (yep, running as root). I know for a fact that my
chip resides at address 0xfc300000 (/proc/iomem and /proc/ide/siimage tells me this). Can I do a mmap like the following to access the registers on ths chip?

fdDevMem = open( "/dev/mem", O_RDWR );
ptr =

    mmap
    (
        NULL,
        4096,
        PROT_READ | PROT_WRITE,
        MAP_SHARED,
        fdDevMem,
        0xfc300000
    );

When I try this, I get a valid pointer back, but it doesn't seem to be mapped to my si3112 chip register bank.

I've also used code like the following:
ptr =

    mmap
    (
        0xfc300000,
        4096,
        PROT_READ | PROT_WRITE,
        MAP_SHARED | MAP_ANONYMOUS,
        -1,
        0
    );

Same story.
If I use MAP_FIXED and/or MAP_PRIVATE, the mmap call fails.

What am I doing wrong here?
Thanks,
Randy Hyde

#2 lore raw

Re: mmap to Access PCI space?

Quoted 8 lines · On Thu, 23 Oct 2003 20:36:12 -0700 "Randall Hyde" <[email protected]>…

I need to access a couple of SATA chips from a user-mode program (yep, running as root). I know for a fact that my
chip resides at address 0xfc300000 (/proc/iomem and /proc/ide/siimage tells me this). Can I do a mmap like the following to access the registers on ths chip?

fdDevMem = open( "/dev/mem", O_RDWR );
ptr =

Quoted 9 lines
    mmap
    (
        NULL,
        4096,
        PROT_READ | PROT_WRITE,
        MAP_SHARED,
        fdDevMem,
        0xfc300000
    );

That's not portable and will only work on a few platforms. Please use mmap() and ioctl() operations on /proc/bus/pci/* nodes to accomplish your task.

#3 lore raw
In reply to [email protected]
Quoted 10 lines · [email protected] [[email protected]] wrote:

The problem:

I thought
echo "scsi log all" >/proc/scsi/scsi
with
scsi_logging=y in .config
would turn on kernel scsi logging and put some notification line in /var/log/messages
indicating scsi logging was now active at such and such a level

Quoted 8 lines

that is not happening and I have a external drive connected via usb talking scsi that cannot be unmounted and i need to trace scsi action so I can post here.

lsscsi output is

[0:0:0:0]    disk    USB 2.0  Storage Device   0100  /dev/sda
[1:0:0:0]    disk    Linux    scsi_debug       0004  /dev/sdb

The scsi logging interface switched control from proc to sysctl.

sysctl -w dev.scsi.logging_level=0xffffffff

Will result in a scsi log all. You need to use caution if syslogd is running and you have other scsi devices.

-andmike
--
Michael Anderson
[email protected]