From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KYOLd-0005wg-P0 for qemu-devel@nongnu.org; Wed, 27 Aug 2008 12:58:21 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KYOLc-0005vs-0Q for qemu-devel@nongnu.org; Wed, 27 Aug 2008 12:58:21 -0400 Received: from [199.232.76.173] (port=42627 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KYOLb-0005vo-Qn for qemu-devel@nongnu.org; Wed, 27 Aug 2008 12:58:19 -0400 Received: from csl.cornell.edu ([128.84.224.10]:2894 helo=vlsi.csl.cornell.edu) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KYOLb-0000WT-A8 for qemu-devel@nongnu.org; Wed, 27 Aug 2008 12:58:19 -0400 Received: from stanley.csl.cornell.edu (stanley.csl.cornell.edu [128.84.224.15]) by vlsi.csl.cornell.edu (8.13.4/8.13.4) with ESMTP id m7RGw7oY070464 for ; Wed, 27 Aug 2008 12:58:12 -0400 (EDT) Date: Wed, 27 Aug 2008 12:58:07 -0400 (EDT) From: Vince Weaver Subject: Re: [Qemu-devel] linux-user exception handling In-Reply-To: Message-ID: <20080827125223.H53558@stanley.csl.cornell.edu> References: <20080825162105.T45325@stanley.csl.cornell.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-318660905-1219856287=:53558" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-318660905-1219856287=:53558 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Mon, 25 Aug 2008, Blue Swirl wrote: > > No, register window handling and other exceptions are handled in > linux-user/main.c. You are right. It can be frustrating tracing through the code trying to find out what is being called when. In any case, I think I've found a bug with register-window handling. When using sparc32plus, the "wim" value isn't being updated on a save_window() call. Thus when later a "ta 3" (flush register windows) call happens, the wrong windows get written out to memory. I've attached some sample code that shows this problem. The patch below fixes this for me, but it should be looked over carefully because the register window code in qemu is deep magic. This fix allows the spec2k gcc.scilab and fma3d benchmarks to progress further. Vince --- linux-user/main.c.orig 2008-08-27 12:48:52.000000000 -0400 +++ linux-user/main.c 2008-08-27 12:49:41.000000000 -0400 @@ -793,14 +793,12 @@ static void save_window(CPUSPARCState *env) { -#ifndef TARGET_SPARC64 unsigned int new_wim; new_wim = ((env->wim >> 1) | (env->wim << (env->nwindows - 1))) & ((1LL << env->nwindows) - 1); save_window_offset(env, cpu_cwp_dec(env, env->cwp - 2)); env->wim = new_wim; -#else - save_window_offset(env, cpu_cwp_dec(env, env->cwp - 2)); +#if defined(TARGET_SPARC64) env->cansave++; env->canrestore--; #endif --0-318660905-1219856287=:53558 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=reg_window.s Content-Transfer-Encoding: BASE64 Content-ID: <20080827125806.M53558@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=reg_window.s ISAgICAgKyBTeXNjYWxscyBoYXZlIG51bWJlciBpbiAlZzEsIG9wdGlvbnMg aW4gJW8wLCVvMSwuLi4NCiEJUmVzdWx0IHJldHVybmVkIGluICVvMA0KIQlM aW51eCBzeXNjYWxsIGlzIGNhbGxlZCBieSAidGEgMHgxMCINCg0KLmVxdSBT WVNDQUxMX0VYSVQsMQkNCi5lcXUgU1lTQ0FMTF9XUklURSw0DQoNCi5lcXUg U1RET1VULDENCg0KCS5nbG9ibCBfc3RhcnQNCl9zdGFydDoNCglub3ANCgkN CmxhYmVsOg0KCXNldAkweDQxNDEwYTAwLCVsMA0KCXNldAlvdXRfc3RyaW5n LCVvMQ0KCXN0CSVsMCxbJW8xXQ0KCWNhbGwJd3JpdGVfc3Rkb3V0CQkhIEFB DQoJbm9wDQoJDQoJc2F2ZQklc3AsLTk2LCVzcA0KDQoJc2V0CTB4NDI0MjBh MDAsJWwwDQoJc2V0CW91dF9zdHJpbmcsJW8xDQoJc3QJJWwwLFslbzFdDQoJ Y2FsbAl3cml0ZV9zdGRvdXQJCSEgQkINCglub3ANCg0KCXNhdmUJJXNwLC05 Niwlc3ANCg0KCXNldAkweDQzNDMwYTAwLCVsMA0KCXNldAlvdXRfc3RyaW5n LCVvMQ0KCXN0CSVsMCxbJW8xXQ0KCWNhbGwJd3JpdGVfc3Rkb3V0CQkhIEND DQoJbm9wDQoJDQoJc2F2ZQklc3AsLTk2LCVzcA0KDQoJc2V0CTB4NDQ0NDBh MDAsJWwwDQoJc2V0CW91dF9zdHJpbmcsJW8xDQoJc3QJJWwwLFslbzFdDQoJ Y2FsbAl3cml0ZV9zdGRvdXQJCSEgREQNCglub3ANCg0KCXNhdmUJJXNwLC05 Niwlc3ANCg0KCXNldAkweDQ1NDUwYTAwLCVsMA0KCXNldAlvdXRfc3RyaW5n LCVvMQ0KCXN0CSVsMCxbJW8xXQ0KCWNhbGwJd3JpdGVfc3Rkb3V0CQkhIEVF DQoJbm9wDQoJDQoJc2F2ZQklc3AsLTk2LCVzcA0KDQoJc2V0CTB4NDY0NjBh MDAsJWwwDQoJc2V0CW91dF9zdHJpbmcsJW8xDQoJc3QJJWwwLFslbzFdDQoJ Y2FsbAl3cml0ZV9zdGRvdXQJCSEgRkYNCglub3ANCgkNCglzYXZlCSVzcCwt OTYsJXNwDQoNCglzZXQJMHg0NzQ3MGEwMCwlbDANCglzZXQJb3V0X3N0cmlu ZywlbzENCglzdAklbDAsWyVvMV0NCgljYWxsCXdyaXRlX3N0ZG91dAkJISBH Rw0KCW5vcA0KCQ0KCXNhdmUJJXNwLC05Niwlc3ANCg0KCXNldAkweDQ4NDgw YTAwLCVsMA0KCXNldAlvdXRfc3RyaW5nLCVvMQ0KCXN0CSVsMCxbJW8xXQ0K CWNhbGwJd3JpdGVfc3Rkb3V0CQkhIEhIDQoJbm9wDQoJDQoJc2F2ZQklc3As LTk2LCVzcA0KDQoJc2V0CTB4NDk0OTBhMDAsJWwwDQoJc2V0CW91dF9zdHJp bmcsJW8xDQoJc3QJJWwwLFslbzFdDQoJY2FsbAl3cml0ZV9zdGRvdXQJCSEg SUkNCglub3ANCgkNCglzYXZlCSVzcCwtOTYsJXNwDQoNCglzZXQJMHg0YTRh MGEwMCwlbDANCglzZXQJb3V0X3N0cmluZywlbzENCglzdAklbDAsWyVvMV0N CgljYWxsCXdyaXRlX3N0ZG91dAkJISBKSg0KCW5vcA0KDQoJc2F2ZQklc3As LTk2LCVzcA0KDQoJc2V0CTB4NGI0YjBhMDAsJWwwDQoJc2V0CW91dF9zdHJp bmcsJW8xDQoJc3QJJWwwLFslbzFdDQoJY2FsbAl3cml0ZV9zdGRvdXQJCSEg S0sNCglub3ANCg0KCXNhdmUJJXNwLC05Niwlc3ANCg0KCXNldAkweDRjNGMw YTAwLCVsMA0KCXNldAlvdXRfc3RyaW5nLCVvMQ0KCXN0CSVsMCxbJW8xXQ0K CWNhbGwJd3JpdGVfc3Rkb3V0CQkhIExMDQoJbm9wDQoNCglzYXZlCSVzcCwt OTYsJXNwDQoNCglzZXQJMHg0ZDRkMGEwMCwlbDANCglzZXQJb3V0X3N0cmlu ZywlbzENCglzdAklbDAsWyVvMV0NCgljYWxsCXdyaXRlX3N0ZG91dAkJISBN TQ0KCW5vcAkNCgkNCiEJZmx1c2h3IHNwYXJjOSBvbmx5DQoNCgkNCg0KCXJl c3RvcmUNCg0KCXNldAlvdXRfc3RyaW5nLCVvMQkNCglzdAklbDAsWyVvMV0N CgljYWxsCXdyaXRlX3N0ZG91dAkJISBMTA0KCW5vcA0KDQoJcmVzdG9yZQ0K DQoJc2V0CW91dF9zdHJpbmcsJW8xCQ0KCXN0CSVsMCxbJW8xXQ0KCWNhbGwJ d3JpdGVfc3Rkb3V0CQkhIEtLDQoJbm9wDQoNCglyZXN0b3JlDQoNCglzZXQJ b3V0X3N0cmluZywlbzEJDQoJc3QJJWwwLFslbzFdDQoJY2FsbAl3cml0ZV9z dGRvdXQJCSEgSkoNCglub3ANCg0KCXJlc3RvcmUNCg0KCXNldAlvdXRfc3Ry aW5nLCVvMQkNCglzdAklbDAsWyVvMV0NCgljYWxsCXdyaXRlX3N0ZG91dAkJ ISBJSQ0KCW5vcA0KCQ0KCXRhIDMNCgkNCglyZXN0b3JlDQoNCglzZXQJb3V0 X3N0cmluZywlbzEJCQ0KCXN0CSVsMCxbJW8xXQ0KCWNhbGwJd3JpdGVfc3Rk b3V0DQoJbm9wCQ0KCQ0KCXJlc3RvcmUNCgkNCglzZXQJb3V0X3N0cmluZywl bzEJDQoJc3QJJWwwLFslbzFdDQoJY2FsbAl3cml0ZV9zdGRvdXQNCglub3AJ DQoNCglyZXN0b3JlDQoNCglzZXQJb3V0X3N0cmluZywlbzEJCQ0KCXN0CSVs MCxbJW8xXQkNCgljYWxsCXdyaXRlX3N0ZG91dA0KCW5vcAkNCgkNCglyZXN0 b3JlDQoNCglzZXQJb3V0X3N0cmluZywlbzEJCQ0KCXN0CSVsMCxbJW8xXQ0K CWNhbGwJd3JpdGVfc3Rkb3V0DQoJbm9wCQ0KCQ0KCXJlc3RvcmUNCg0KCXNl dAlvdXRfc3RyaW5nLCVvMQkJDQoJc3QJJWwwLFslbzFdDQoJY2FsbAl3cml0 ZV9zdGRvdXQNCglub3AJDQoNCglyZXN0b3JlDQoNCglzZXQJb3V0X3N0cmlu ZywlbzEJCQ0KCXN0CSVsMCxbJW8xXQ0KCWNhbGwJd3JpdGVfc3Rkb3V0DQoJ bm9wCQ0KDQoJcmVzdG9yZQ0KDQoJc2V0CW91dF9zdHJpbmcsJW8xCQkNCglz dAklbDAsWyVvMV0NCgljYWxsCXdyaXRlX3N0ZG91dA0KCW5vcAkNCgkNCgly ZXN0b3JlDQoNCglzZXQJb3V0X3N0cmluZywlbzEJCQ0KCXN0CSVsMCxbJW8x XQ0KCWNhbGwJd3JpdGVfc3Rkb3V0DQoJbm9wCQkNCg0KCW5vcA0KCW5vcA0K CW5vcA0KCQ0KZXhpdDoJCQ0KICAgICAgICBtb3YJMCwlbzAJCQkhIGV4aXQg dmFsdWUNCiAgICAgICAgbW92CVNZU0NBTExfRVhJVCwlZzEgICAgICAgICEg cHV0IHRoZSBleGl0IHN5c2NhbGwgbnVtYmVyIGluIGcxDQogICAgICAgIHRh ICAgICAgMHgxMAkJCSEgYW5kIGV4aXQNCgkNCgkjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCgkjIFdSSVRFX1NURE9VVA0KCSM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KCSMgJW8xIGhhcyBzdHJpbmcN Cg0Kd3JpdGVfc3Rkb3V0Og0KDQoJc2V0CVNZU0NBTExfV1JJVEUsJWcxCSEg V3JpdGUgc3lzY2FsbCBpbiAlZzENCglzZXQJU1RET1VULCVvMAkJISAxIGlu ICVvMCAoc3Rkb3V0KQ0KCXNldAkwLCVvMgkJCSEgMCAoY291bnQpIGluICVv Mg0KDQpzdHJfbG9vcDE6DQoJbGR1YglbJW8xKyVvMl0sJWwxCQkhIGxvYWQg Ynl0ZQ0KCWNtcAklbDEsJWcwCQkJISBjb21wYXJlIGFnYWluc3QgemVybw0K CWJueglzdHJfbG9vcDEJCSEgaWYgbm90IG51bCwgcmVwZWF0DQoJIyBCUkFO Q0ggREVMQVkgU0xPVA0KCWluYwklbzIJCQkhIGluY3JlbWVudCBjb3VudA0K DQoJZGVjCSVvMgkJCSEgY29ycmVjdCBjb3VudAkNCgl0YQkweDEwCQkJISBy dW4gdGhlIHN5c2NhbGwNCg0KCXJldGwNCglub3ANCg0KDQoNCg0KIT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLmRhdGENCiE9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCg0KZGF0YV9yZWdpb246CQkuaW50IC0x LC0xDQpvdXRfc3RyaW5nOgkJLmludCAwDQo= --0-318660905-1219856287=:53558 Content-Type: APPLICATION/octet-stream; name=reg_window Content-Transfer-Encoding: BASE64 Content-ID: <20080827125807.W53558@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=reg_window f0VMRgECAQAAAAAAAAAAAAACAAIAAAABAAEAdAAAADQAAAOwAAAAAAA0ACAA AgAoAAYAAwAAAAEAAAAAAAEAAAABAAAAAAN8AAADfAAAAAUAAQAAAAAAAQAA A3wAAgN8AAIDfAAAAAwAAAAMAAAABgABAAABAAAAIRBQQqAUIgATAACAkhJj hOAiQABAAACxAQAAAJ3jv6AhEJCCoBQiABMAAICSEmOE4CJAAEAAAKkBAAAA neO/oCEQ0MKgFCIAEwAAgJISY4TgIkAAQAAAoQEAAACd47+gIRERAqAUIgAT AACAkhJjhOAiQABAAACZAQAAAJ3jv6AhEVFCoBQiABMAAICSEmOE4CJAAEAA AJEBAAAAneO/oCERkYKgFCIAEwAAgJISY4TgIkAAQAAAiQEAAACd47+gIRHR wqAUIgATAACAkhJjhOAiQABAAACBAQAAAJ3jv6AhEhICoBQiABMAAICSEmOE 4CJAAEAAAHkBAAAAneO/oCESUkKgFCIAEwAAgJISY4TgIkAAQAAAcQEAAACd 47+gIRKSgqAUIgATAACAkhJjhOAiQABAAABpAQAAAJ3jv6AhEtLCoBQiABMA AICSEmOE4CJAAEAAAGEBAAAAneO/oCETEwKgFCIAEwAAgJISY4TgIkAAQAAA WQEAAACd47+gIRNTQqAUIgATAACAkhJjhOAiQABAAABRAQAAAIHoAAATAACA khJjhOAiQABAAABLAQAAAIHoAAATAACAkhJjhOAiQABAAABFAQAAAIHoAAAT AACAkhJjhOAiQABAAAA/AQAAAIHoAAATAACAkhJjhOAiQABAAAA5AQAAAJHQ IAOB6AAAEwAAgJISY4TgIkAAQAAAMgEAAACB6AAAEwAAgJISY4TgIkAAQAAA LAEAAACB6AAAEwAAgJISY4TgIkAAQAAAJgEAAACB6AAAEwAAgJISY4TgIkAA QAAAIAEAAACB6AAAEwAAgJISY4TgIkAAQAAAGgEAAACB6AAAEwAAgJISY4Tg IkAAQAAAFAEAAACB6AAAEwAAgJISY4TgIkAAQAAADgEAAACB6AAAEwAAgJIS Y4TgIkAAQAAACAEAAAABAAAAAQAAAAEAAACQECAAghAgAZHQIBCCECAEkBAg AZQQIADiCkAKgKRAABK///6UAqABlCKgAZHQIBCBw+AIAQAAAP////////// AAAAAAAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC50ZXh0AC5kYXRhAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAA AAEAAAAGAAEAdAAAAHQAAAMIAAAAAAAAAAAAAAABAAAAAAAAACEAAAABAAAA AwACA3wAAAN8AAAADAAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAA AAADiAAAACcAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAABKAA AAEAAAAABQAAAAwAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAWgAAAAewAA AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAHQAAAAAAwAA AQAAAAAAAgN8AAAAAAMAAAIAAAABAAAAAQAAAAAAAP/xAAAADgAAAAQAAAAA AAD/8QAAABwAAAABAAAAAAAA//EAAAAjAAEAeAAAAAAAAAABAAAAKQACA4QA AAAAAAAAAgAAADQAAQNQAAAAAAAAAAEAAABBAAEDRAAAAAAAAAABAAAARgAB A1wAAAAAAAAAAQAAAFAAAgN8AAAAAAAAAAIAAABcAAEAdAAAAAAQAAABAAAA YwACA4gAAAAAEAD/8QAAAG8AAgOIAAAAABAA//EAAAB2AAIDiAAAAAAQAP/x AFNZU0NBTExfRVhJVABTWVNDQUxMX1dSSVRFAFNURE9VVABsYWJlbABvdXRf c3RyaW5nAHdyaXRlX3N0ZG91dABleGl0AHN0cl9sb29wMQBkYXRhX3JlZ2lv bgBfc3RhcnQAX19ic3Nfc3RhcnQAX2VkYXRhAF9lbmQA --0-318660905-1219856287=:53558--