I have writen a driver as this : 1)a kernel thread receive data sent by other computer via tcp/ip, and put them into a queue; 2)another kernel thread get the data from the queue ,and write it to a disk .In this step,i implement by the follow code: ...... generic_make_request(WRITE,bh);//the buffer head is alloced bykmalloc by myself run_task_queue(&tq_disk); ...... My problem : In this way ,the disk's performance is bad. How can i do to improve the disk's performance ? Please give me a hand. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/