Re: I/O error propagation

From: V P (upathiyayan_at_gmail.com)
Date: 03/03/05

  • Next message: Esben Nielsen: "Re: [patch] Real-Time Preemption, deactivate() scheduling issue"
    Date:	Thu, 3 Mar 2005 16:29:39 -0600
    To: linux-os@analogic.com
    
    

    I agree.

    But what if the file systems can handle certain errors better than
    what the drivers can do now ? Take for e.g., data corruption. If the
    driver finds a corrupted sector that it cannot recover, it is going to
    convert this specific error in to a more generic error code (-EIO) and
    report it to the file system, But the file system might find it is ok
    to have a block of data with few corrupted bytes (say, if the block
    belongs to a large video file) rather than receive an I/O error code
    with no data at all.

    What I'm thinking is this: do we have to export richer error codes to
    the filesystem from the driver and let the file system handle them as
    it thinks appropriate ?

    thanks,

    On Thu, 3 Mar 2005 15:20:55 -0500 (EST), linux-os <linux-os@analogic.com> wrote:
    > On Thu, 3 Mar 2005, V P wrote:
    >
    > > Hi,
    > >
    > > I have a question on how disk errors get propagated to
    > > the file systems.
    > >
    > >> From looking at the SCSI/IDE drivers, it looks like there
    > > could be many reasons for an I/O to fail. It could be
    > > bus timeout, media errors, and so on.
    > >
    > > Does all these errors get reported to the file system ?
    > > It looks like all the different types of errors get
    > > turned into a single I/O error (-EIO) and passed on to the
    > > file system.
    > >
    > > Or is there a way where we can export better error codes
    > > to the file system ?
    > >
    > > Any idea/input regarding this is greatly appreciated.
    > >
    > > Thanks.
    >
    > It depends upon the disk devices, i.e., IDE SCSI, etc., but in
    > general all errors reported by the hardware result in retrying
    > the operation. If the retry fails after several (device dependent)
    > attempts, the actual error is reported as a kernel message. These
    > errors can be retrieved using the `dmesg` command and they
    > will usually be retained in some kernel log in /var/log (actual
    > log-name is vendor dependent).
    >
    > Following the Unix convention, any errors reported back upstream,
    > eventually to the user, get reported ONLY as something defined
    > in /usr/include/errno.h (which includes others, ultimately
    > /usr/asm/errno.h).
    >
    > So, you don't need to reinvent anything. If you have hardware
    > errors they will be reported in /var/log/messages (or whatever)
    > and if you are making a new driver, you are expected to comply
    > with the same protocol.
    >
    > Cheers,
    > Dick Johnson
    > Penguin : Linux version 2.6.10 on an i686 machine (5537.79 BogoMips).
    > Notice : All mail here is now cached for review by Dictator Bush.
    > 98.36% of all statistics are fiction.
    >
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Esben Nielsen: "Re: [patch] Real-Time Preemption, deactivate() scheduling issue"

    Relevant Pages

    • RE: IDE error
      ... the driver file that allows the system to ... One possible cause of this bug check is disk corruption. ... NTFS file system or bad blocks on the hard disk can induce this ... Another possible cause is depletion of nonpaged pool memory. ...
      (microsoft.public.win2000.general)
    • Re: Removable media enc/dec driver design.
      ... on top of the disk driver before the "File System Recognizers" look at ... This Disk Device filter driver would decrypt all the sectors ... Once the user has provided the correct decryption key, ...
      (microsoft.public.development.device.drivers)
    • Re: Incorporating a 3rd party driver into a BSP/Image
      ... I am now able to configure the file system, and by extension get all of my ... driver suite actually run as if a CAB had installed it. ... folder and run? ... As far as 'making it part of my BSP', I'm not sure what that means ...
      (microsoft.public.windowsce.platbuilder)
    • Re: How to speed up WinCE 6.00 boot
      ... driver load activity occurs. ... When the Nand Flash file system is empty, the board start quickly but as ... If you store the hive registry on that flash I think that the system ...
      (microsoft.public.windowsce.platbuilder)
    • Re: Deadlock problem with ERESOURCEs in filesystem driver
      ... only newsgroup for file system questions. ... I am working on a Windows filesystem driver and I'm seeing a deadlock ... the driver and another one for each File Control Block (FCB). ... an FCB lock which is not owned by any other thread. ...
      (microsoft.public.development.device.drivers)