Programming :: Find Physical Address Of Memory Provided By Kmalloc
Oct 22, 2009
I allocated a chunk of memory using kmalloc in a Device Driver. Kmalloc provides a pointer to the allocated memory. This is one of my first few drivers.
I assume that the address returned is a Virtual address. I need to find the physical address of the memory location. I am working on an Intel 64 bit Fedora machine. I used the virt_to_phys() routine present in <asm/io_64.h>. I found that this routine returns an unsigned long value (32 bit) instead of an unsigned long long value (64 bit). Moreover, it seems that it simply returns the address - OFFSET instead of extracting the value in the page tables.
So is there any function / system call in Linux which will allow me to see the actual physical address on the Intel 64 arch.
View 3 Replies
ADVERTISEMENT
Dec 17, 2008
When I try to access at physical address (0xD0000), we known that it is necessary to convert physical address to virtual address using function IOREMAP(0xD0000, 1024) and return me 0xC00D0000.
Now our doubt is when I have a board with I/O in address 0x150, is it necessary to convert this address to other virtual address??? or with inb(0x150) return me state of I/O in this address? How can I known where is this I/O address in my map memory?
View 7 Replies
View Related
Apr 13, 2010
How can I get the physical address corresponding to a virtual address in linux by using /proc file system
View 1 Replies
View Related
Jun 16, 2010
I want to use kmalloc() to allocate contiguous memory on ram. But I can not seem to find the required header file(s) like linux/slab.h. I suppose I do not have the required library and I certainly do not know what and where to look.
View 14 Replies
View Related
Feb 21, 2010
A process is trying one access to memory, for example through an array (ex.: vect[0]=123. What happens?
Here below what I guess but I'm not sure and accept any comment (please, distinguish between "the system" and "the CPU" in case).
Let's suppose swapping to disk disbled.
We have two scenarios: without and with cache.
If no cache is present in the system:
1. The CPU must discover the phys addr of vect[0] virtual addr. To do that, has to read from 3 (or 2 depending on the system?) pages tables, stored in memory as well.
2. The CPU writes to the final address.
These mean 4 memory accesses.
If cache is present:
1. Like above but, if the pages tables are in cache, we have 3 accesses to that.
2. If the req. page is not in cache, it's reads from ram and transferred to it. Afterwards, cache is written.
In the best case we have 4 cache accesses.
View 2 Replies
View Related
Apr 6, 2011
I need a small shell based program that prints the mac address of physical ethernet adapter from it's firmware. I need this utility for license generation and appliance activation. I have tried several example but none of them is flawless, The easiest method I have found is to parse the output of "ifconfig" command but it has also some drawbacks.
1. Firstly program should differentiate between physical and virtual adapters. Physical means installed on board(wired or wireless) or installed additionally. Virtual adapters are those created by VPN or created by virtualization apps such as VirtualBox/VMWare etc. I am not interested in virtual ones.
2. In case of more them one physical adapters(wired and wireless), it should print the mac address and description(name & vendor) of both/all adapters.
3. If media is disconnected then also it should be able to read the mac address and description(name, vendor) of card.
4. This one is bit complex. I know that 'ethtool' can show you the universal mac address but it's limited to use only 2 types of drivers and won't work in all cases.
View 2 Replies
View Related
Nov 18, 2009
I want to translate the virtual address to physical address in linux C application, how to do that?
View 1 Replies
View Related
Nov 4, 2010
As i undertsand - out of 1GB of the virtual Address space for Kernel from 3GB to 4GB of the process address space, Kernel image (code, data, bss, stack, heap) resides staring @0x0 address. Vmalloc area starts either at the end of Physical ram size or at 896M. This 896M cap is mandated to ensure that minimum of 128MB is reserved as vmalloc_reserve for vmalloc,kmap etc.
Is the understanding correct? Now trying to map Physical Zones into this 1GB address space
Initial 16MB is mapped to ZONE_DMA
16MB - 896MB is mapped to ZONE_NORMAL
896MB - 1024MB is mapped to ZONE_HIGHMEM
Does this mean that Kernel image is residing in ZONE_DMA area? Any call to vmalloc() in kernel code will return address beyond 896M? insmod of any LKM will internally invoke vmalloc() to obtain contiguous area - where will this code physically located along with rest of kernel code in ZONE_DMA or in ZONE_HIGHMEM?
View 1 Replies
View Related
Aug 8, 2011
Let's analyse this While registering a Char deriver to kernel think that we had allocated memory using any of malloc/kmalloc/vmalloc.
If we forgot to Free that allocated memory while unregistering, will that memory be allocated aside or kernel clears it...?
View 2 Replies
View Related
Jul 27, 2011
clarrify the below points:1) Where does the Kmalloc/Vmalloc/get_free_pages/malloc Allocates memory in which space is it Kernel/User?2) Coming to Hardware Point of View is where Kernel/User Space Memory Allocates is it in RAM or any.?3) In Device Drivers, how Open Call get to know whether the hardware is connected/not?
View 6 Replies
View Related
Oct 18, 2010
How do I get the page pointer from a physical address?
View 1 Replies
View Related
Feb 21, 2011
if i attach a shared memory to my process whch part of the address space it will add(like stack, heap, data, code...).
View 3 Replies
View Related
Apr 4, 2011
How to printing physical address of page directories for all processes?
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
[code]....
View 1 Replies
View Related
May 2, 2010
Whenever I'm running my application process, I've 1M physical memory usage is increasing for every 2 hours.This I observed using 'free -m' command.But 'top' command did not showing any increase 'RSS' size.It is same as it was started initially.Even though I stopped my process,the increased memory was not released back. If I start my application process then again memory usage start increasing by 1M for every 2 hours. increase of memory usage observer with 'free' and that too when my application is running, but top command is not showing any change in the RSS sizeIf my application is leaking any memory which is allocated by new/malloc, that should be released back whenever my application exit and the size increase will be show through top command for that process, right? This is not happeningThis proves that there is no potential leaks in my process.But why physical memory is increasing when only my process is running?
View 14 Replies
View Related
Jan 11, 2010
let me know how to clear cache memory ( RHEL 5.1 ) as it consumes almost 100% physical memory.
View 3 Replies
View Related
Oct 20, 2010
I am monitoring physical memory in a server I administer, and my hardware provider told me they had increased physical memory size to 4Gb... However, using several tools (free -m; top; dmesg | grep Memory; grep MemTotal /proc/meminfo I discovered that I actually have 3Gb, not 4... But, my doubt comes from the fact that dmesg | grem Memory tells me I have 3103396k/4194304k available The first number is effectively 3Gb, but the second one, is 4! so, why I am looking at this two different numbers?
View 1 Replies
View Related
Mar 17, 2010
So I'll try to be brief and to the point here: I've got a couple of C / C++ apps that communicate with one another via shared memory. These worked completely fine until.. well, about twenty minutes ago when I finished making some network card changes and suddenly, I've got a weird problem going on. At one point, Parent app waits for Child app to set a boolean indicating it's finished initialization. This worked fine the last time I ran this app up (a few days ago). But right now, the shared flag never seems to get triggered (I've added a printf("Waiting..."); in Parent app until the flag is set). All the code leading up to it being set in Child app seem to be running smoothly, so I tried spitting out the addresses of the shared memory locations. The addresses mapped by Parent app and Child app are different; this seemed odd, so I went back and wrote a simple miniature app that just opened a shared structure on my own box, and I get the same thing - different addresses - but the miniature apps work just fine.
Is it normal for a shared memory space to be mapped to two different addresses across two processes?
If so, does anyone have any idea what might be the issue at hand with my Parent / Child app scenario? The Child creates the shared memory, the Parent has a wait before it opens it, and if it doesn't exist should fail (opening with PROT_READ | PROT_WRITE)... it doesn't fail so it's evidently there.
All of this worked until literally just a few hours ago and I made some changes to my network cards, and I can't even imagine how that could have changed whether or not shared memory mapping worked...
View 2 Replies
View Related
Jul 11, 2011
Kernel 2.6.21.5, slackware 12.0
nasm 2.03.01
ld 2.17
GNU gdb 6.6
This GDB was configured as "i486-slackware-linux".
Code:
What could the cause of the message output by gdb possibly be? Reading some tutorials, I've learn the flat memory model is used in linux. So, in particular, I needn't care about the DS segment register.
Also, line 7 in the listing above, suggests nasm is assuming 32-bit addressing and so, I think it is using the flat memory model.
View 3 Replies
View Related
Mar 9, 2011
how to calculate (if possible) the end address of an image file in a flash memory. I'm trying to create a checksum and checkheader function and the info that I got is the file's offset, how many sector it consumes and its size. I kinda need the end address, sad thing is, I don't know how to calculate it.test.img's start address is 0, the size is 0x20000 and consumes 3 sectors.
View 6 Replies
View Related
Apr 19, 2010
I am writing a game in C with SDL. I can successfully display one image on the screen and animate it. However, I am having a lot of issues getting the background to display using the same method. I was asking for help on SDL related forums, but I determined that the issue is not SDL related, and it is actually a pointer issue. However, I can't find where I'm going wrong.
Code:
#include <SDL/SDL.h>
struct image
[code]...
View 4 Replies
View Related
Jul 19, 2010
im REALLY new with linux and ive downloaded and installed Ubuntu...now heres the question.how do i set up WLAN internet use? ive tried using ipconfig/all on windows command but im not sure which info to use where save for the Physical Address going towards the MAC Address info
View 14 Replies
View Related
Feb 16, 2010
I am trying to find out the mac address of the eth0 port on linux probe. This port is controlled by kernal and hence I don't have control over it. How do I find out the mac address of this port ? Is there any system call which will take the ip address and will do the lookup on the linux's ip table to get the mac address ?
View 6 Replies
View Related
May 21, 2010
How do we configure to resolve for hostnames when an IP address is provided to the DNS server.
Things I tried
The DNS daemon was started by the resolution failed. Find the logs below
** server can't find 11.127.168.192.in-addr.arpa: NXDOMAIN
View 4 Replies
View Related
Apr 20, 2010
I am using malloc and frees a lot in my program. It shows its allocated but when i remove it doesnt show as the memory is removed(I am using the top command to view VIRT memory usage). If this continously grows what would happen to my program (Will it go out of memory?)
View 4 Replies
View Related
Apr 15, 2011
I am trying to run C++ program on linux.
My program consume a lot of memory so that the memory is used up fast and memory swap is very high.
I can find this by "ps" .
My program is long.
I need to find out which part of my program consume so much memory ?
View 1 Replies
View Related
Jan 23, 2011
I'd like to ask you how install new physical memory in my hp ml350 g6 server with linux redhat operating system>
i sugess it is easy like in windows operating system but there is frind told me you must make mount , i am new with linux os .
View 2 Replies
View Related
May 18, 2010
I am trying to build and bring-up Linux (embedded) for a piece of hardware which have MIPS 74K proccessor 16MB Flash, 128MB DDR and network/usb support. How to configure/set into the kernel the exact addresses of the physical memory map? How does the kernel know where is the system ram, i/o memory, root FS? I have read some book and I found how the applications can go and read some special files like /proc/iomem to find out info about memory but what I need is how to set those addresses at the beginning when I build the kernel and FS in order to boot the kernel on my h/w.
View 3 Replies
View Related
Nov 22, 2009
I am writing an application that wants to access periphals registers outside the standard (allowed) memory area.
Doing so gets me "segmentation fault".
I know, this is natural behaviour.
One way of getting around this is writing the module which has to be loaded by linux. I will consider this some time later.
For now, I want to come to some quick result and allow linux or gcc compiler to write to those memory areas of periphals. Is there a direct way to do so?
View 3 Replies
View Related
Sep 12, 2010
When we want to setup a linux system, there is a common a suggestion like set the swap space as twice as big than your physical memory, I want to know why do we need this and how is this suggestion come from?
View 4 Replies
View Related
Sep 3, 2010
I am doing a test to get the memory used by apache`s apache2 processes. I used a script to get VmSize and VmRss from /proc/pid/status, and loop through that to get the sum of VmSize and VmRss of all the apache2 processes.
I found the VmSize (about 4GB) and VmRss (about 3.4GB) are much larger than the physical memory (1GB) when apache server was saturated. It was said because of the multi-counted libiraries size used by many processes simultaneously. Then , how to get the physical memory used by apache2 processes? Or how to get a more reasonable memory data?
View 7 Replies
View Related