Cannot boot with SMP and APIC_IO in kernel conf

Matthew Dillon dillon at apollo.backplane.com
Sun May 21 09:49:06 PDT 2006


:I have been unable to get to a login prompt (to boot up) my dragonfly bsd
:installation if I compile a kernel with both SMP and APIC_IO options.
:
:Since it can't boot up, I can only provide pics i took with my phone of what
:happens during boot up, they are at http://www.rumko.net/dragonfly/ and so is
:the kernel config file.
:
:Hope someone can fix my problem.

    Its hard to tell but I think it may be crashing in this bit of code
    in ad_timeout():

    /* if retries still permit, reinject this request */
    if (request->retries++ < AD_MAX_RETRIES) {
        ad_requeue(adp->device->channel, request);
    }
    else {
        /* retries all used up, return error */
        request->bio->bio_buf->b_error = EIO;	<<<<<<<<<<<<<<<<<<<<< HERE
        request->bio->bio_buf->b_flags |= B_ERROR;
        devstat_end_transaction_buf(&adp->stats, request->bio->bio_buf);
        biodone(request->bio);
        ad_free(request);
    }
    ata_reinit(adp->device->channel);

    I'm not sure why, though.  But that isn't the cause of the problem...
    the ATA timeout code may be broken in some way, but a timeout can
    only occur in that manner (theoretically) if interrupt routing isn't
    working, so it is possible that APIC routing is broken in some way.

    The fault address is really weird.  It kinda looks to me like the 
    BUF/BIO was free()'d up prior to the ad_timeout() and the memory was
    being used for something else (like to hold text).

    What kind of machine is this?  Motherboard and chipset?

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Bugs mailing list