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 ...


3

To see installed memory you can use this command: $ prtconf | grep Memory Memory size: 65408 Megabytes There's also prtdiag -v | grep Memory. Additional methods are shown here: Used memory on Solaris 10.


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, ...


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 ...


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 ...


1

As a tangential point if your threads are created and the thread function exits after doing its job but the VmDATA keeps increasing, then you have a memory leak. Generally when a thread function exits a pthread_exit is implicit but the thread resources are not release until a pthread_join or pthread_detach. So to explicitly release the thread stack from ...



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