On Tue, Sep 15, 2009 at 2:23 AM, raz ben yehuda <raziebe@xxxxxxxxx> wrote:
Yes, netconsole sounds like a cool thing. I might actaully need to use it one day.
Thanks for the input.
-Leo.
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 <telent997@xxxxxxxxx> wrote:
> 2009/9/14 Leonidas . <leonidas137@xxxxxxxxx>:
> >
> >
>
>
> > On Mon, Sep 14, 2009 at 4:01 PM, Leonidas .
> <leonidas137@xxxxxxxxx> wrote:
> >>
> >>
> >> On Mon, Sep 14, 2009 at 3:32 PM, Leonidas .
> <leonidas137@xxxxxxxxx> wrote:
> >>>
> >>>
> >>> On Mon, Sep 14, 2009 at 3:28 PM, Leonidas .
> <leonidas137@xxxxxxxxx>
> >>> wrote:
> >>>>
> >>>>
> >>>> On Mon, Sep 14, 2009 at 2:46 PM, karunakar rao
> >>>> <karunakar.santhu@xxxxxxxxx> 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 .
> <leonidas137@xxxxxxxxx>
> >>>>> wrote:
> >>>>>>
> >>>>>>
> >>>>>> On Mon, Sep 14, 2009 at 2:30 PM, karunakar rao
> >>>>>> <karunakar.santhu@xxxxxxxxx> 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 .
> <leonidas137@xxxxxxxxx>
> >>>>>>> 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.