-----Original Message----- From: prasanna wakhare [mailto:prasannawakhare@yahoo.com] Sent: Friday, June 04, 2004 3:31 PM To: Nilanjan Roychowdhury Cc: kernelnewbies@nl.linux.org Subject: Re: sharing data hi, > 1. I share a data between a kernel thread and an > ISR. ( this is a uniprocessor system). In kernel > thread I do spin_lock_irqsave > and then unlocking. Where as accessing the data > from the ISR I do not use any spin lock coz I know > when the ISR is running the kernel thread does not > get a chance to run. Am I right ??? but when your kernel thread is accessing data and interrupt handler comes preepmts the thread and access the shared data then this is not at all safe, >>>>>>>> how can interrupt handler prempts it when I use spin lock irq save. >>>>>>>>It disables the interrupts in a uniprocessor system. rather atomic access of data structure in most cases should need becuse of keeping them atomic between ISR and other parts accessing the shared data > 2. I want to implement a message quque send and recv > routine between two kernel threads. ( here I can not > use the standard message quques) > What I do is in recv call I check if there is any > message in the queue. If no then I sleep on a wait > queue. Yes this is right way i think becuase thread executes in kernel space if you do not wait then this will halt your system,look i think until unless you do not yeild ,your thread will never preempt(plz correct if any mistake)so better to sleep on waitqueues > While sending a message I always add the message to > the queue and and use wake up call on wait queue. > Is my implementation leak proff.....or there are > some flaws??? > Is your sender and receiver thread is any way connected to ISR?and whom you are going to wake up, if data availaible to send is ready?I'm not clear about above?plz let me know more. Yes ,and to protect shared data between handler and threads,ofcourse you wont used semaphore and spin locks,rather use atomic_t data structure,although they are busy wait,but why to used you can get more information on linux device driver book. >>>> in sendmsg call I will wakeup the receiver thread. thanks Prasanna __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/