On Tue, Sep 15, 2009 at 2:23 AM, raz ben yehuda <[email protected]> wrote:

> i would i have used netconsole.
>
> On Tue, 2009-09-15 at 11:45 +0530, Leonidas . wrote:
> >
> >
> > On Mon, Sep 14, 2009 at 7:00 PM, Pei Lin <[email protected]> wrote:
> >         2009/9/14 Leonidas . <[email protected]>:
> >         >
> >         >
> >
> >
> >         > On Mon, Sep 14, 2009 at 4:01 PM, Leonidas .
> >         <[email protected]> wrote:
> >         >>
> >         >>
> >         >> On Mon, Sep 14, 2009 at 3:32 PM, Leonidas .
> >         <[email protected]> wrote:
> >         >>>
> >         >>>
> >         >>> On Mon, Sep 14, 2009 at 3:28 PM, Leonidas .
> >         <[email protected]>
> >         >>> wrote:
> >         >>>>
> >         >>>>
> >         >>>> On Mon, Sep 14, 2009 at 2:46 PM, karunakar rao
> >         >>>> <[email protected]> wrote:
> >         >>>>>
> >         >>>>> hi leo
> >         >>>>> maintain circular buffer in module, so that if user
> >         doesn't access for
> >         >>>>> days its going to be automatically discarded.I think
> >         printk also use same
> >         >>>>> kind of mechanism which dumps data into cirbuffer.
> >         >>>>>
> >         >>>>> thanks,
> >         >>>>> karuna.
> >         >>>>>
> >         >>>>> On Mon, Sep 14, 2009 at 2:41 PM, Leonidas .
> >         <[email protected]>
> >         >>>>> wrote:
> >         >>>>>>
> >         >>>>>>
> >         >>>>>> On Mon, Sep 14, 2009 at 2:30 PM, karunakar rao
> >         >>>>>> <[email protected]> wrote:
> >         >>>>>>>
> >         >>>>>>> hi leo
> >         >>>>>>> you can maintain buffer in your module to log
> >         errors.When user tries
> >         >>>>>>> to access /proc you can print all those from your
> >         buffer.
> >         >>>>>>>
> >         >>>>>>> Thanks,
> >         >>>>>>> karuna.
> >         >>>>>>>
> >         >>>>>>> On Mon, Sep 14, 2009 at 1:22 PM, Leonidas .
> >         <[email protected]>
> >         >>>>>>> wrote:
> >         >>>>>>>>
> >         >>>>>>>>
> >         >>>>>>>> Hi List
> >         >>>>>>>>
> >         >>>>>>>> I have written a kernel module which implements a
> >         char device. An
> >         >>>>>>>> userspace app
> >         >>>>>>>> is supposed to get data from my module and then dump
> >         it into a file
> >         >>>>>>>> for further processing.
> >         >>>>>>>>
> >         >>>>>>>> The kind of data which kernel module is going to pass
> >         to userspace
> >         >>>>>>>> is going to be a 4K buffer,
> >         >>>>>>>> and the data traffic is not going to be really heavy,
> >         meaning may be
> >         >>>>>>>> a 4K buffer every 1 min or so.
> >         >>>>>>>> I am not very sure though, but certainly not heavy
> >         traffic the way
> >         >>>>>>>> they describe for network traffic etc.
> >         >>>>>>>>
> >         >>>>>>>> And this data needs to be logged to a file either
> >         from kernel or
> >         >>>>>>>> userspace and an userspace all will work
> >         >>>>>>>> on that data. This data needs to be logged as soon as
> >         it arrives
> >         >>>>>>>> meaning, I might not be able to write it to
> >         >>>>>>>> /proc since from module I can update /proc only when
> >         user actually
> >         >>>>>>>> accesses it. This data needs to be
> >         >>>>>>>> static in nature, meaning I get one error and I write
> >         it to a file
> >         >>>>>>>> somehow and user can see it anytime.
> >         >>>>>>>>
> >         >>>>>>>> I hope I have described the situation clearly. I have
> >         explored some
> >         >>>>>>>> mechanism like ioctls, mmaping the
> >         >>>>>>>> kernel buffer etc but all these would require the
> >         user module to
> >         >>>>>>>> poll or notified somehow by kernel that
> >         >>>>>>>> the data is available. I dont want the user module to
> >         poll.
> >         >>>>>>>>
> >         >>>>>>>>
> >         >>>>>>>> -Leo.
> >         >>>>>>>>
> >         >>>>>>>
> >         >>>>>>
> >         >>>>>> Pei Lin,
> >         >>>>>>
> >         >>>>>> I am not limiting my solution by using a law or what
> >         someone says. But
> >         >>>>>> I think it is very important to
> >         >>>>>> follow the spirit of environment/OS/arch you are
> >         working on and come
> >         >>>>>> up with the best possible solution.
> >
> >
> >         hi , i didn't receive these messages. (^-^)
> >         yeah,u can choose the way u wanna go,no matter a wide road or
> >         some
> >         private alleys.
> >         which one is convenient for different guys.
> >
> >         >>>>>> As you correctly mention we can hack around and achieve
> >         the same
> >         >>>>>> functionality but I would rather do these
> >         >>>>>> kind of experiments for fun or to show my friends that
> >         the kernel can
> >         >>>>>> be hacked these ways, but certainly not
> >         >>>>>> in a system which is supposed to be a production
> >         system. I appreciate
> >         >>>>>> your thoughts and I am sure many times
> >         >>>>>> one stumbles upon real cool things which change course
> >         of nature and
> >         >>>>>> are reasons for radical changes in
> >         >>>>>> various subsystems. But I think this is not one of
> >         them, this has been
> >         >>>>>> discussed over and over again and there
> >         >>>>>> are standard interfaces defined. My questions is more
> >         about the design
> >         >>>>>> part not about how I can hack and get
> >         >>>>>> the stuff done.
> >
> >
> >         yeah,i agree. If it is a commercial software, it need a pretty
> >         and
> >         clean interface to support future updating and maintenance.
> >
> >
> >         >>>>>>
> >         >>>>>> Karuna,
> >         >>>>>> I had thought about this solution i.e. maintain a
> >         buffer in module and
> >         >>>>>> dump it whenever user wants, only
> >         >>>>>> issue is my module will keep consuming memory here. I
> >         msg buffers can
> >         >>>>>> be freed once logged but how about
> >         >>>>>> a case where user does not request for few days? The
> >         amount of memory
> >         >>>>>> my module is going to consume will be
> >         >>>>>> unacceptable.
> >         >>>>>>
> >         >>>>>> -Leo
> >         >>>>>
> >         >>>>
> >         >>>> Sorry I did not mention it earlier, I can not discard any
> >         error message
> >         >>>> logged, meaning these are error messages
> >         >>>> and might crash my system after a long time. I need to to
> >         be able to see
> >         >>>> all these messages till I restart my module.
> >         >>>>
> >         >>>> _Leo.
> >         >>>
> >         >>>
> >         >>> Basically, I am quite tight on memory and I would like to
> >         convery error
> >         >>> messages to user as soon as any
> >         >>> error condition is hit. So my module cant keep even 10
> >         error msg which
> >         >>> will eat up 10 pages.
> >         >>>
> >         >>> _Leo
> >         >>>
> >         >>>
> >         >>
> >         >> Looks like some of the replys didn't get delivered to the
> >         list. Please
> >         >> refer the thread for someof the interactions.
> >         >>
> >         >> Isn't debugfs the right thing to use here? Anyone? Please
> >         enlighten.
> >         >>
> >         >> _Leo
> >         >>
> >         >
> >         >
> >         > After some analysis, I have decided to use netlink sockets
> >         for my use case.
> >         > Some queries regarding the same:
> >         >
> >         > 1. Are netlink sockets an overkill for not so heavy data
> >         transfer ?
> >         > 2. Do I have to recompile kernel etc for loading my module
> >         which usages
> >         > netlink sockets?
> >         > 3. Are they widely available everywhere? Meaning 2.4 and 2.6
> >         kernles as
> >         > well?
> >         > 4. Any idea whether these are available on BSD kernel as
> >         well? I think they
> >         > are.
> >         >
> >
> >
> >         i think use sockets like using a big hammer knock to small
> >         nail...using signal to announce make more sense in my opinion.
> >
> >         >
> >         > _Leo
> >         >
> >         >
> >         >
> >
> > True, netlink is good but may be not in my case, I am getting in a
> > subset of networking subsytem
> > to my job which can be done in a more light weight manner using mmap +
> > signals. I guess i am going
> > with mmap + signal approach.
> >
> > Thanks all for the inputs.
> >
> > -Leo.
>
>
Yes, netconsole sounds like a cool thing. I might actaully need to use it
one day.
Thanks for the input.

-Leo.

Reply via email to