Tag Info

Hot answers tagged

4

You might be running into trouble because /dev/mem has holes in it: memory locations that don't exist can't be read. strings is designed to read a regular file (or pipe or other input stream) from beginning to end and assumes there can't be holes in its input. It probably aborts the first time it gets a read error, which would correspond to the first hole ...


2

Take a look at this script https://github.com/pixelb/scripts/commits/master/scripts/ps_mem.py which we are using regularly to debug our applications. It is not a simple task and the methods differ from kernel to kernel sometimes. From the description of the script you can read the following. # Try to determine how much RAM is currently being used per ...


2

One option to do a quick test could be to use a KGDB enabled kernel and stop the kernel manually and test, see this link. On another note, things I remember that could cause your pauses: cpufreq, cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency, the value is in ns (4000 in my AMD FX(tm)-8120 Eight-Core Processor) shouldn't be a problem, ...


1

Most likely you need to use a "dumber" editor to use the RAM and I think it's VI that does "swapping" for you. Normally Vi uses a file to hangle its buffer. You may want to look into other answers on this site. Eg.: What happens if I use vi on large files?


1

Check /proc/ tree memory file $> cat /proc/meminfo MemTotal: $MEMTOTAL MemFree: $MEMFREE Buffers: $BUFFERS Cached: $CACHED SwapCached: $SWAPCACHED ... ... Check DMESG Log for your Memory $> dmesg | grep "Memory" Invoke dmidecode to learn about your hardware $> dmidecode --type memory Most likely, you are facing a hardware issue. Make sure ...


1

I figured you can analyze the /proc/ID/maps file for each process in question - if you list all the mapped pages, discard all executable pages, shared pages and pages that are not mapped to an inode. If you then sum up their sizes (which can be computed from the beginning and ending addresses) then the result is the actual memory pressure of the process. I ...


1

I don't think that huge pages are worth the trouble on a typical desktop use. Data in huge pages is very slightly faster to access, but this requires allocating memory in chunks of 2MB at a time (on x86_64, with similar sizes on other architectures). Most applications allocate memory in far smaller chunks. The two main applications of huge pages in user ...


1

Before the introduction of tmpfs / initramfs there was ramdiskused to load the initrdimages, a pre-defined fixed size block devices, I think contiguous, at least on earlier implementations. The block driver itself doesn't have parameters for the memory address, only the size, but the kernel used to load initrd images at a pre-defined address (by config) so ...


1

I am not an expert on device drivers, however here are some pointers for your R&D: if memory is marked as "reserved", the OS cannot touch it; you will have to find a way to either have the BIOS mark it as available to the OS, or use direct low-level ioctls to control it if Linux could see the memory, you still would not have an easy way to prevent ...



Only top voted, non community-wiki answers of a minimum length are eligible