_____  

From: Peter Jeremy [mailto:peterjer...@optushome.com.au]
To: Gerry Weaver [mailto:ger...@compvia.com]
Cc: freebsd-hackers@freebsd.org
Sent: Wed, 24 Dec 2008 02:44:45 -0600
Subject: Re: How to access kernel memory from user space

On 2008-Dec-22 18:05:34 -0600, Gerry Weaver <ger...@compvia.com> wrote:
  >I am working on a driver that collects various network statistics via
  >pfil. I have a simple array of structures that I use to store the
  >statistics. I also have a user space process that needs to collect
  >these statistics every second or so.
  
  The easiest (and hackiest) approach would be to kldsym(2) to locate
  the symbol in KVM and then mmap(2) the relevant part of /dev/kmem.
  The biggest downside is that the userland process needs to be group
  kmem.
  
  The other approach would be for your kernel driver to grow a character
  device node and directly support mmap.
  
  -- 
  Peter Jeremy
  Please excuse any delays as the result of my ISP's inability to implement
  an MTA that is either RFC2821-compliant or matches their claimed 
behaviour.Hello All,

Happy Holidays Everyone!!

Thanks for the advice Peter. In this case, the driver I'm working on will run 
on a dedicated
embedded platform, so process group membership shouldn't be an issue. My main 
concern is performance. Any additional overhead will effect the stats, so I 
want to try
to keep it minimal. Is there any significant trade off in performance between 
the two
approaches? The typical data array size is around 20k. Also, Is there anything 
in the source
or ports tree that I could use as an example for the device node case? I've 
been looking around,
but haven't found anything yet. I'll continue digging though ;-)

Thanks Again,
Gerry


  
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to