Bug 154796

Summary: Missing /dev/kmem, cannot read from kernel virtual memory.
Product: Red Hat Enterprise Linux 4 Reporter: Abhijit Toley <abhijit.toley>
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED NOTABUG QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: linux26port, pfrields
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-22 01:17:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Abhijit Toley 2005-04-14 08:35:07 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510

Description of problem:

1)
We need to access kernel virtual memory and we do it through /dev/kmem.
But there is no /dev/kmem in the above mentioned kernel series. 

2)
We need /proc/kallsyms also, so that we can get the address (in the kernel
virtual memory) of a symbol from it and then go to that offset in /dev/kmem
to get the symbol.

In short, we need both /dev/kmem and /proc/kallsyms to be present.

Q1)
Do we need to follow certain steps for /dev/kmem to get created when the 
kernel boots?

Q2)
If either of these is not going to be provided by RedHat, then could you 
please suggest alternatives?

Thanks.

Version-Release number of selected component (if applicable):
2.6.9-5.EL, 2.6.9-6.26.ELsmp (amongst others of the same series)

How reproducible:
Always

Steps to Reproduce:
1. Install RHEL4 by an FTP installation. Just follow the steps as promted.
2. Find that /dev/kmem does not exist.

  

Additional info:

Comment 1 Abhijit Toley 2005-04-14 08:38:11 UTC
This is an issue on i686 as well as x86_64. 

Comment 2 Dave Jones 2005-04-22 01:17:46 UTC
Q1.
/dev/kmem support was intentionally removed, as it served no practical purpose
other than to serve as a potential security problem (by allowing root users to
modify kernel memory), or to enable binary module drivers to access
structures/functions they shouldn't be touching.

Q2.
Only use exported functions.