Opened 6 years ago

Last modified 6 years ago

#17 new defect

os2ahci reports non-existent devices to smart queries

Reported by: ukihelt Owned by: stevenhl
Priority: minor Milestone: Release-1.8.16
Component: danis506.add Version: 1.8.13
Keywords: Cc:

Description

I have a small application that queries danis506.add for performance figures and SMART data using her interface to do so. On my machine in IDE mode, with only danis506.add 1.8.14 loaded, I get data for a single disk drive on '1m'. If I now load basedev=os2ahci.add then I suddenly start getting data for all master/slave devices up to 7m/7s! If I put my BIOS into AHCI mode only and REM out danis506 and boot only using os2ahci.add then I get the same mis-reported drives. In addition, possibly due to the same problem, with os2ahci.add loaded, if I open a command prompt and type type ibms506$ then I get an i/o error popup instead of the expected messages from danis506 about what disks and devices were discovered and their geometry.

Source and precompiled binaries for the application can be found on hobbes.nmsu.edu as dskmon10.zip

Change History (1)

comment:1 Changed 6 years ago by stevenhl

There are a couple of issues here.

First, to query devices owned by os2ahci.add, you need to use the os2ahci interface (i.e. OS2AHCI$). Os2ahci.add implements a SMART interface derived from the danis506 implementation. If you wish to query drives owned by the os2ahci driver, you need to update your application.

Second, your existing code might be detecting all error modes. As written, it will consider non-zero returns codes other than 0xff02 and 0xff03 as successful completion indicators and this is not true. This might be what is causing the misreported drives.

I am not quite sure what is causing the danis506 error popups. I need to see logs from your application and screen shots of the error popup.

In case you don't already have it, source code for the os2ahci driver is available at http://svn.ecomstation.nl/ahci.

Note: See TracTickets for help on using tickets.