From mboxrd@z Thu Jan 1 00:00:00 1970 From: ablacktshirt@gmail.com (walkerlala) Date: Wed, 18 May 2016 12:53:52 +0800 Subject: can anyone tell me which function to call to pause the kernel In-Reply-To: <62324.1463498506@turing-police.cc.vt.edu> References: <57349965.5070707@gmail.com> <57391618.7090506@gmail.com> <573B0E98.8060602@gmail.com> <62324.1463498506@turing-police.cc.vt.edu> Message-ID: <573BF560.8050509@gmail.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On 2016?05?17? 23:21, Valdis.Kletnieks at vt.edu wrote: > On Tue, 17 May 2016 20:29:12 +0800, walkerlala said: > >> Can I just disable interrupts from hardwares? I know that, at the very >> beginning, the kernel disable interrupt for convenient. So I wonder >> whether we can do thing like this. > > Sure you can do that. > > But then, how do you get the kernel's attention? > >> >> Put it in another way: >> when we "interact" with a Linux Desktop, there are also many programs >> running underneath as daemons, but we can still do our own works without >> even noting their existing. So I wonder, is there a similar way that we >> can use to interact with the kernel (without using a debugger) ? > > Try this: > > Start up Xorg and your preferred window manager. > > Open an xterm or a Gnome-terminal or whatever. > > From that window, try to attach gdb to the Xorg process: > > % ps ax|grep Xorg > 1791 tty2 S+ 69:42 /usr/libexec/Xorg vt2 -displayfd 3 -auth /run/user/967/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3 > 62036 pts/0 S+ 0:00 grep Xorg > % gdb -p 1791 > > What happens? > > Why does it happen? > > Eventually, you'll figure out what Xorg and the kernel have in common here.... > Ok after trying what you said, I think I understand what you mean eventually. I try to use gdb to attach the window manager, which happen to be Compiz on my machine, then the whole GUI block. The only thing that I can see being able to react is the cursor(honestly I don't understand why the cursor can move....) This is my reasoning: when I attach gdb to Compiz, the window manager block, thus not being able to serving. The same with the kernel. If I block the kernel, then it would not be able to serve..... Is this what you mean ? So I have to wait for the kernel to finish and prompt me a console ? Actually, I am willing to do so, but I just can't get the raw kernel to run at Qemu. That is the reason why I tried to block the kernel...... Any idea ? Regards,