08-14-2009
To prevent the kernel from doing kernel level things, you must modify the kernel. That's the only place where you can get the kind of raw, exclusive I/O you want.
Really, though, what is the goal here? Maybe there's a better way than hacking nonstandard behavior into your entire networking stack.
Or if you really want 100% raw access, just disable TCP/IP support in your kernel. No more TCP, no more ARP, no more kernel automatically managing either. You'd have to do it all yourself.
Last edited by Corona688; 08-14-2009 at 01:31 PM..
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
hi,
What is the difference between UBC cache and Metadata cache ? where can i find UBC cache Hits and Metadata cache Hits in hp-ux?
Advanced thanx for the help. (2 Replies)
Discussion started by: sushaga
2 Replies
2. Solaris
Dear all,
We are testing two of our servers for mq series connectivity. The scenario is, when one machine is shutting down it's services there are some scripts that do a dns update, which removes the ip address and relates it to the ip address of the other node on our dns server, and the update... (7 Replies)
Discussion started by: earlysame55
7 Replies
3. IP Networking
how can we spoof ethernet by ARP cache poisoning on unix through a program...
can anyone post the source code to achieve this... (1 Reply)
Discussion started by: ud4u
1 Replies
4. Linux
Hi all
I am trying to understand the kernel memory management and require assistance in this regard. Kernel first creates the cache memory to perform any subsequent allocation to processes. I could not figure out how it is accomplished. Do kernel directly allocates any hardware cache or allocates... (0 Replies)
Discussion started by: joshighanshyam
0 Replies
5. Linux
Hi all
I saw in Microsoft web site www.SysInternals.com a tool called CoreInfo from able to print out on screen the size of the Data and Instruction caches of your processor, the Locigal to Physical Processor mapping, the number of the CPU sockets. etc..
Do you know if in Linux is available a... (2 Replies)
Discussion started by: manustone
2 Replies
6. UNIX for Advanced & Expert Users
18:45:47 # free -m
total used free shared buffers cached
Mem: 96679 95909 770 0 1530 19550
-/+ buffers/cache: 74828 21851
Swap: 12287 652 11635
Hi all. The below output is from a RHEL 4.5... (0 Replies)
Discussion started by: drummerrob
0 Replies
7. Linux
Hi All,
could any one point out any open source test-suites for "File cache" testing and as well as performance test suites for the same. Currently my system is up with Linux/ext4.
Regards
Manish (0 Replies)
Discussion started by: hmanish
0 Replies
8. Linux
Hi,
We are working on OEL5.7 (Oracle Linux) OS. We have a server with 64GB RAM. When we issue free -m command which shows the used, available and cached space. Most of the space is shown in cached section, where as we are not really doing much activity on the server.
It's like cached is... (5 Replies)
Discussion started by: shrshah64
5 Replies
9. Linux
Hi,
Can any one please help me increase the arp stale time of an ipv6 interface on linux platform ?
I have tried increasing the variable gc_stale_time but that doesnt work.
Thanks (2 Replies)
Discussion started by: dkothapa
2 Replies
10. UNIX for Dummies Questions & Answers
i wish to clear memory cache on a production box and i was wondering what is the worst that can happen if i do?
i already tested this on a backup server and everything seemed fine.
but i need to know from you experts what are the worst things that can happen when i run it on a real server:
... (5 Replies)
Discussion started by: SkySmart
5 Replies
RAW(8) System Manager's Manual RAW(8)
NAME
raw - bind a Linux raw character device
SYNOPSIS
raw /dev/raw/raw<N> <major> <minor>
raw /dev/raw/raw<N> /dev/<blockdev>
raw -q /dev/raw/raw<N>
raw -qa
DESCRIPTION
raw is used to bind a Linux raw character device to a block device. Any block device may be used: at the time of binding, the device
driver does not even have to be accessible (it may be loaded on demand as a kernel module later).
raw is used in two modes: it either sets raw device bindings, or it queries existing bindings. When setting a raw device, /dev/raw/raw<N>
is the device name of an existing raw device node in the filesystem. The block device to which it is to be bound can be specified either
in terms of its major and minor device numbers, or as a path name /dev/<blockdev> to an existing block device file.
The bindings already in existence can be queried with the -q option, with is used either with a raw device filename to query that one
device, or with the -a option to query all bound raw devices.
Unbinding can be done by specifying major and minor 0.
Once bound to a block device, a raw device can be opened, read and written, just like the block device it is bound to. However, the raw
device does not behave exactly like the block device. In particular, access to the raw device bypasses the kernel's block buffer cache
entirely: all I/O is done directly to and from the address space of the process performing the I/O. If the underlying block device driver
can support DMA, then no data copying at all is required to complete the I/O.
Because raw I/O involves direct hardware access to a process's memory, a few extra restrictions must be observed. All I/Os must be cor-
rectly aligned in memory and on disk: they must start at a sector offset on disk, they must be an exact number of sectors long, and the
data buffer in virtual memory must also be aligned to a multiple of the sector size. The sector size is 512 bytes for most devices.
OPTIONS
-q Set query mode. raw will query an existing binding instead of setting a new one.
-a With -q , specifies that all bound raw devices should be queried.
-h provides a usage summary.
BUGS
The Linux dd (1) command should be used without bs= option or the blocksize needs to be a multiple of the sector size of the device (512
bytes usually) otherwise it will fail with "Invalid Argument" messages (EINVAL).
Raw I/O devices do not maintain cache coherency with the Linux block device buffer cache. If you use raw I/O to overwrite data already in
the buffer cache, the buffer cache will no longer correspond to the contents of the actual storage device underneath. This is deliberate,
but is regarded either a bug or a feature depending on who you ask!
AUTHOR
Stephen Tweedie (sct@redhat.com)
AVAILABILITY
The raw command is part of the util-linux-ng package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
Version 0.1 Aug 1999 RAW(8)