Bug#758115: Disabled wait state X'32EE' on IPL of zIPL
On Fri, Aug 22, 2014 at 07:21:31PM -0400, Stephen Powell wrote:
> > static inline int wait(void)
> > {
> > do {
> > load_wait_psw(0x0102000180000000ULL, &S390_lowcore.external_new_psw);
> > 33d0: e3 20 d0 00 00 04 lg %r2,0(%r13)
> > 33d6: a7 39 01 b0 lghi %r3,432
> > 33da: c0 e5 ff ff fc f7 brasl %r14,2dc8 <load_wait_psw>
> > if (S390_lowcore.ext_int_code == 0x1004)
> > 33e0: e3 10 00 86 00 91 llgh %r1,134
> > 33e6: a7 1e 10 04 chi %r1,4100
> > 33ea: a7 74 00 06 jne 33f6 <sclp_wait_for_int+0x9a>
> > 33ee: a7 28 00 02 lhi %r2,2
> > 33f2: a7 f4 00 08 j 3402 <sclp_wait_for_int+0xa6>
> > return ETIMEOUT;
> > } while (S390_lowcore.ext_int_code != 0x2401);
> > 33f6: a7 1e 24 01 chi %r1,9217
> > 33fa: a7 74 ff eb jne 33d0 <sclp_wait_for_int+0x74>
> > 33fe: a7 28 00 00 lhi %r2,0
> >
> > Would be interesting how the disassembly looks on your system.
> Indeed. Here is what I got:
> -----
>
> static inline int wait(void)
> {
> do {
> load_wait_psw(0x0102000180000000ULL, &S390_lowcore.external_new_psw);
> 32d6: a7 39 01 b0 lghi %r3,432
> 32da: e3 20 d0 00 00 04 lg %r2,0(%r13)
> 32e0: c0 e5 ff ff fb b8 brasl %r14,2a50 <load_wait_psw>
> if (S390_lowcore.ext_int_code == 0x1004)
> 32e6: 48 10 00 86 lh %r1,134
> 32ea: a7 f4 00 01 j 32ec <sclp_wait_for_int+0x84>
> 32ee: 07 07 nopr %r7
>
> -----
With gcc-4.8:
static inline int wait(void)
{
do {
load_wait_psw(0x0102000180000000ULL, &S390_lowcore.external_new_psw);
331e: e3 20 d0 00 00 04 lg %r2,0(%r13)
3324: a7 39 01 b0 lghi %r3,432
3328: c0 e5 ff ff fb ac brasl %r14,2a80 <load_wait_psw>
if (S390_lowcore.ext_int_code == 0x1004)
332e: e3 10 00 86 00 91 llgh %r1,134
3334: a7 1e 10 04 chi %r1,4100
3338: a7 84 00 0a je 334c <sclp_wait_for_int+0x9c>
return ETIMEOUT;
} while (S390_lowcore.ext_int_code != 0x2401);
333c: a7 1e 24 01 chi %r1,9217
3340: a7 74 ff ef jne 331e <sclp_wait_for_int+0x6e>
return 0;
3344: a7 28 00 00 lhi %r2,0
3348: a7 f4 00 04 j 3350 <sclp_wait_for_int+0xa0>
That does look much better for 3338, 3340, not really for 3348 (to 3350). It
does fix the issue at hand, but it's a band-aid at most. I installed the
package on wheezy (compiled on sid) and it booted...
Kind regards
Philipp Kern
Reply to: