Re: Clearing DBSR and DBCR0 in host handler.

2013-04-03 Thread Kumar Gala

On Apr 3, 2013, at 10:24 AM, Bhushan Bharat-R65777 wrote:

 Hi All,
 
 The kernel exception handling code for 32 bit (transfer_to_handler in 
 entry_32.S) clear DBSR and load DBCR0 with 0 (global_dbcr0 variable, which is 
 zero) if user space used debug (DBCR0.IDM set).
 
 But I do not same (clearing DBCR0 and DBSR) in 64bit exception handler. Is 
 this an issue or I am missing something?
 
 Thanks
 -Bharat

Are you having a problem with debug w/the 64-bit kernel?  The 32-bit kernel 
supports several kernel level debug features that the 64-bit doesn't support.  
So if you are having an issue that might be more helpful to convey that just 
asking about exception code path.

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


RE: Clearing DBSR and DBCR0 in host handler.

2013-04-03 Thread Bhushan Bharat-R65777


 -Original Message-
 From: Kumar Gala [mailto:ga...@kernel.crashing.org]
 Sent: Wednesday, April 03, 2013 9:41 PM
 To: Bhushan Bharat-R65777
 Cc: linuxppc-dev@lists.ozlabs.org; Benjamin Herrenschmidt; Alexander Graf; 
 Wood
 Scott-B07421
 Subject: Re: Clearing DBSR and DBCR0 in host handler.
 
 
 On Apr 3, 2013, at 10:24 AM, Bhushan Bharat-R65777 wrote:
 
  Hi All,
 
  The kernel exception handling code for 32 bit (transfer_to_handler in
 entry_32.S) clear DBSR and load DBCR0 with 0 (global_dbcr0 variable, which is
 zero) if user space used debug (DBCR0.IDM set).
 
  But I do not same (clearing DBCR0 and DBSR) in 64bit exception handler. Is
 this an issue or I am missing something?
 
  Thanks
  -Bharat
 
 Are you having a problem with debug w/the 64-bit kernel?

No not any issue, I was looking into code where it saves/restores of debug 
register. I observed the above said inconsistency in 32 bit and 64 bit.

  The 32-bit kernel
 supports several kernel level debug features that the 64-bit doesn't support.

I am talking about the a user process debugging:
-  A user process is under debugging using gdb. So the h/w debug 
register will have thread context.
-  An interrupt/exception happens in user process.
-  Now on 32 bit we clear the DBSR (pending events) and DBCR0 (so no 
new events get captured). But on 64bit we do not follow same, Why it is so?
   Are we doing something extra on 32 bit or something is missing on 64 
bit? 
   Can it happen that on 64 bit some more debug events get captured and 
debug interrupts get fired if MSR.DE is set, which is undesired. 

Or I am missing something here ?

Thanks
-Bharat

 So if you are having an issue that might be more helpful to convey that just
 asking about exception code path.
 
 - k

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev