_____ 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"