Sponsored Content
Top Forums Programming write() issue during a low level hdd access Post 302397219 by sponnusa on Sunday 21st of February 2010 01:21:43 PM
Old 02-21-2010
thanks for the reply.

I know O_DIRECT might work, and I tried with O_DIRECT, but it fails for some reason. I have tried with aligned the write buffer after getting the block size from the HDD. But it fails miserably and I don't know how to debug it. I stopped digging into it because it might branch my work. Smilie

gdb is not of much help here. I've tried jumping directly to a known bad sector location in the code for testing., but I could not get it to fail the write call. (btw, dmesg starts spewing errors after a certain write attempts on the bad sector). So, the libata is catching those errors and kernel is aware of it. But the program does not receive the error.

I have tried mapping raw devices for the hdds and executed the same operations without success.

Quote:
Has any body has any example code of writing to a hdd using O_DIRECT? Like atleast for a single sector or a file?
I wrote a small program which is working currently. Doing the testing.


I have been trying to get this to work for a long time with multiple failed options! Having sleepless nights too. Smilie

Last edited by sponnusa; 02-21-2010 at 03:06 PM.. Reason: updated the code for O_DIRECT
 

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Low level format?

I want to do a low level format like in windows (C:\format c:) but I don't know how it works in unix or linux.. Can somebody help me ? thnx :) (3 Replies)
Discussion started by: day
3 Replies

2. HP-UX

Access to a second HDD

Hello How to access to a second hard disk on a HP-UX system? Thanks (3 Replies)
Discussion started by: ouniss
3 Replies

3. IP Networking

Best reference for understanding low level info on nic cards drivers and functionality

Hi, What is the best reference that gives in detail on nic cards configuration , assigning multiple ip addresses to a single interface, netlink library etc and all basic stuff at this level..? Thanks (2 Replies)
Discussion started by: Gopi Krishna P
2 Replies

4. AIX

High Runqueue (R) LOW CPU LOW I/O Low Network Low memory usage

Hello All I have a system running AIX 61 shared uncapped partition (with 11 physical processors, 24 Virtual 72GB of Memory) . The output from NMON, vmstat show a high run queue (60+) for continous periods of time intervals, but NO paging, relatively low I/o (6000) , CPU % is 40, Low network.... (9 Replies)
Discussion started by: IL-Malti
9 Replies

5. Programming

System calls and C language low-level qualities???

Hi friends, I hope everyone is fine and doing well. I queried in my previous thread about the low-level qualities of C/C++ languages.I really thank you people for explaining, it was really helpful. One more ambiquity that I have in my mind is regarding the unix system calls like open, creat,... (1 Reply)
Discussion started by: gabam
1 Replies

6. Programming

Why is C/C++ considered low-level languages???

Hi friends, I hope everyone is doing well and fine. I have always been hearing that C/C++ are relatively low-level as compared to Java/C# etc. Could you please tell me some low-level qualities of C/C++? And I think disk deframenters are written in C/C++, please correct me if I am wrong. And please... (5 Replies)
Discussion started by: gabam
5 Replies

7. Programming

Low level X11 programming

How to use X11 without Xlib not XCB? How draw window directly on low level? I must use anyway window manager like Motif? I have ridden that X11 has server-client architecture, client send via TCP/IP to port 6000 request for primitives and get replies. Where is detailed description of it? In X11... (0 Replies)
Discussion started by: AndrzejB
0 Replies
badsect(8)						      System Manager's Manual							badsect(8)

NAME
badsect - Creates files to contain bad sectors SYNOPSIS
/usr/sbin/badsect bbdir sector... DESCRIPTION
The badsect command makes a file to contain a bad sector. Normally, bad sectors are made inaccessible by the standard formatter, which provides a forwarding table for bad sectors to the driver. If a driver supports the bad blocking standard, it is preferable to use that method to isolate bad blocks because the bad block forwarding makes the disk appear perfect, and such disks can then be copied with dd(1). The technique used by badsect is also less general than bad block forwarding, as badsect cannot make amends for bad blocks in the i-list of file systems or in swap areas. On some disks, adding a sector that is suddenly bad to the bad sector table currently requires the running of the standard formatter. Thus, to deal with a newly bad block or on disks where the drivers do not support the bad-blocking standard, badsect can be used to good effect. Use the badsect command on a quiet file system in the following way: Mount the file system and change to its root directory. Make a direc- tory BAD there. Run badsect, giving as argument the BAD directory followed by all the bad sectors you wish to add. (The sector numbers must be relative to the beginning of the file system, as reported in console error messages.) Change back to the root directory, unmount the file system, and run fsck(8) on the file system. The bad sectors should show up in two files or in the bad sector files and the free list. Have fsck remove files containing the offending bad sectors, but do not have it remove the BAD/nnnnn files. This operation will leave the bad sectors in only the BAD files. The badsect command works by giving the specified sector numbers in a mknod(2) system call, creating an illegal file whose first block address is the block containing bad sector and whose name is the bad sector number. When fsck discovers the file, it will ask "HOLD BAD BLOCK?" An affirmative response will cause fsck to convert the inode to a regular file containing the bad block. RESTRICTIONS
If more than one of the sectors comprised by a file system fragment are bad, you should specify only one to badsect, as the blocks in the bad sector files cover all the sectors in a file system fragment. ERRORS
The badsect command refuses to attach a block that resides in a critical area or is out of range of the file system. A warning is issued if the block is already in use. SEE ALSO
Commands: fsck(8) badsect(8)
All times are GMT -4. The time now is 06:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy