From: Dragos D. <dia...@gm...> - 2012-08-22 13:23:48
|
Hello, I am currently writing a kernel module that I would like to use it in the UML, on ubuntu. In this module I have some events that I would like to generate with a ns precision. (e.g every 10 ns). On an ubuntu kernel I used a busy waiting, with ndelay function which uses the TSC register, but I have noticed that this register cannot be read from an UML. Can you tell me please what is the reason for not being able to read the TSC register from kernel, and if there is other possibility to obtain ns precision as the ndelay implementation has? Best wishes, Dragos |
From: richard -r. w. <ric...@gm...> - 2012-08-22 14:40:01
|
On Wed, Aug 22, 2012 at 3:23 PM, Dragos Diaconescu <dia...@gm...> wrote: > On an ubuntu kernel I used a busy waiting, with ndelay function which uses > the TSC register, but > I have noticed that this register cannot be read from an UML. Please provide a test case. -- Thanks, //richard |
From: Dragos D. <dia...@gm...> - 2012-08-22 16:34:53
|
On Wed, Aug 22, 2012 at 5:39 PM, richard -rw- weinberger < ric...@gm...> wrote: > On Wed, Aug 22, 2012 at 3:23 PM, Dragos Diaconescu > <dia...@gm...> wrote: > > On an ubuntu kernel I used a busy waiting, with ndelay function which > uses > > the TSC register, but > > I have noticed that this register cannot be read from an UML. > > Please provide a test case. > I don't have yet a test case. What I want to do is to make a busy > waiting, and interrupt this busy waiting > at an interval of some nanoseconds and to use the ndelay function. I saw that in the kernel implementation for the uml there is no "delay_tsc" function and there is only the "delay_loop" function. I am wondering why the delay_tsc is not implemented. Is it not possible to read the TSC register? I would need this for having a nanosecond precision. -- > Thanks, > //richard > Best wishes, Dragos |
From: richard -r. w. <ric...@gm...> - 2012-08-23 15:52:57
|
On Wed, Aug 22, 2012 at 6:34 PM, Dragos Diaconescu <dia...@gm...> wrote: > at an interval of some nanoseconds and to use the ndelay function. I saw > that in the kernel implementation > for the uml there is no "delay_tsc" > function and there is only the "delay_loop" function. I am wondering why > the delay_tsc is not implemented. Is it not > possible to read the TSC register? > I would need this for having a nanosecond precision. You can access TSC from user space, so also UML can read it. There is no delay_tsc() in UML because nobody cared so far. Feel free to implement it and send me a patch. :-) -- Thanks, //richard |
From: Dragos D. <dia...@gm...> - 2012-08-24 15:09:40
|
On Thu, Aug 23, 2012 at 6:52 PM, richard -rw- weinberger < ric...@gm...> wrote: > On Wed, Aug 22, 2012 at 6:34 PM, Dragos Diaconescu > <dia...@gm...> wrote: > > at an interval of some nanoseconds and to use the ndelay function. I > saw > > that in the kernel implementation > > for the uml there is no "delay_tsc" > > function and there is only the "delay_loop" function. I am wondering > why > > the delay_tsc is not implemented. Is it not > > possible to read the TSC register? > > I would need this for having a nanosecond precision. > > You can access TSC from user space, so also UML can read it. > There is no delay_tsc() in UML because nobody cared so far. > Feel free to implement it and send me a patch. :-) > > I will try to implement a delay_tsc for UML andI will send you a patch. Can you please give me some directions? Shall I implement in the same manner as is implemented in /arch/x86/lib/delay.c . What are the big differences between this implementation and in an implementation for UML? -- > Thanks, > //richard > Many thanks, Dragos |
From: richard -r. w. <ric...@gm...> - 2012-08-24 15:46:27
|
On Fri, Aug 24, 2012 at 5:09 PM, Dragos Diaconescu <dia...@gm...> wrote: > Can you please > give me some directions? Shall I implement in the same manner as is > implemented in > /arch/x86/lib/delay.c . What are the big differences between this > implementation and in an implementation > for UML? If you are lucky you can copy&paste it. :-) -- Thanks, //richard |