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. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ