From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: nmi cache weirdness??? Date: Thu, 14 Aug 2008 19:20:27 -0700 Message-ID: <48A4E7EB.2080509@oracle.com> Reply-To: mukesh.rathor@oracle.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This on a 4 CPU AMD box with 64G RAM. cpu 0 receives ext NMI, calls kdb_nmi() from do_nmi(). asmlinkage void do_nmi(struct cpu_user_regs *regs) { unsigned int cpu = smp_processor_id(); unsigned char reason; ++nmi_count(cpu); if ( nmi_callback(regs, cpu) ) return; if ( nmi_watchdog ) nmi_watchdog_tick(regs); #ifdef XEN_KDB_CONFIG kdb_nmi(TRAP_nmi, regs); #endif .... } kdb_nmi(..): { watchdog_disable(); set_nmi_callback(kdb_nmi_receive); smp_send_nmi_allbutself(); ...... } However, in do_nmi(), nmi_callback still points to dummy (receiving cpus). What'sinteresting is, if I put two print lines back to back with nothing in between right at the beginning, then the first prints dummy but the second prints kdb_nmi_receive. I'm at a complete loss. Does NMI change cache protocol? I've been looking thru Intel/AMD manuals, but nothing.... Thanks, Mukesh