Opened 9 years ago

Last modified 17 months ago

#7617 new bug

anyboot image with block size 1024 doesn't boot from CD

Reported by: mmadia Owned by: axeld
Priority: normal Milestone: R1
Component: Drivers/Disk Version: R1/Development
Keywords: boot-failure Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

This r1a3-rc-hrev41789 + the changesets for stripping debug information in common/bin & common/lib (hrev41812, hrev41820) + editing build_haiku_image to use a blocksize of 1024K (instead of 2048).

The resulting anyboot image will fail to boot on my hardware. To note, the image generated with 2048 blocksize will boot properly

According to [the attached] syslog the block size is correctly determined as 2048, which seems to point to an IOCache or DMAResource issue. -- ingo

Attachments (4)

minicom-r1a3-rc-anyboot-1024.cap (122.0 KB ) - added by mmadia 9 years ago.
hrev41789-anyboot-on-CD
minicom-r1a3-rc-anyboot-syslog-2 (76.8 KB ) - added by mmadia 9 years ago.
with the addition of changeset hrev41833 -- see attachment:changes-for-syslog-2.diff for complete changes.
changes-for-syslog-2.diff (6.2 KB ) - added by mmadia 9 years ago.
minicom-r1a3-rc-anyboot-IOSchedulerSimple-syslog-3.cap (129.7 KB ) - added by mmadia 9 years ago.
syslog from the addition of the diff mentioned in comment:1

Download all attachments as: .zip

Change History (10)

by mmadia, 9 years ago

hrev41789-anyboot-on-CD

by mmadia, 9 years ago

with the addition of changeset hrev41833 -- see attachment:changes-for-syslog-2.diff for complete changes.

by mmadia, 9 years ago

Attachment: changes-for-syslog-2.diff added

comment:1 by mmadia, 9 years ago

From attachment:minicom-r1a3-rc-anyboot-syslog-2 , which adds changeset:41833

Mounted boot partition: /dev/disk/atapi/2/master/0
scsi_cd: ioctl(op = 15)
scsi_cd: ioctl(op = 15)
atapi 2-0 error: device indicates transfer error after dma
check_sense: Medium error
scsi_cd: ioctl(op = 15)
atapi 2-0 error: device indicates transfer error after dma
check_sense: Medium error
scsi_cd: ioctl(op = 15)
atapi 2-0 error: device indicates transfer error after dma
check_sense: Medium error
scsi_cd: ioctl(op = 15)
atapi 2-0 error: device indicates transfer error after dma
check_sense: Medium error
IOCache::_TransferRequestLine(): Failed to read into cache (offset: 675282944, length: 1048576), trying uncached read (offset: 675312640, length: 1024)
scsi_cd: ioctl(op = 15)
atapi 2-0 error: device indicates transfer error after dma

I'm now build a new anyboot image with the following addition, as Ingo suggested in the haiku-development ML.

Index: ../haiku/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp
===================================================================
--- ../haiku/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp	(revision 41789)
+++ ../haiku/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp	(working copy)
@@ -998,15 +998,15 @@
 		// fragmentation, which makes large contiguous allocations more likely
 		// to fail.
- 		size_t freeMemory = vm_page_num_free_pages();
-		if (freeMemory > 180 * 1024 * 1024 / B_PAGE_SIZE) {
-			info->io_scheduler = new(std::nothrow) IOCache(info->dma_resource,
-				1024 * 1024);
-		} else {
+//		size_t freeMemory = vm_page_num_free_pages();
+//		if (freeMemory > 180 * 1024 * 1024 / B_PAGE_SIZE) {
+//			info->io_scheduler = new(std::nothrow) IOCache(info->dma_resource,
+//				1024 * 1024);
+//		} else {
 			dprintf("scsi_cd: Using IOSchedulerSimple instead of IOCache to "
 				"avoid memory allocation issues.\n");
 			info->io_scheduler = new(std::nothrow) IOSchedulerSimple(
 				info->dma_resource);
-		}
+//		}

 		if (info->io_scheduler == NULL)
 			panic("allocating IOScheduler failed.");

by mmadia, 9 years ago

syslog from the addition of the diff mentioned in comment:1

comment:2 by mmadia, 9 years ago

Forcing the use of the IOSchedulerSimple still generated the following:

scsi_cd: ioctl(op = 15)
atapi 2-0 error: device indicates transfer error after dma
check_sense: Medium error
usb error hub 13: error updating port status
scsi_cd: ioctl(op = 15)

comment:3 by scottmc, 9 years ago

Blocking: 7665 added

comment:4 by diver, 5 years ago

Component: - GeneralDrivers/Disk

comment:5 by waddlesplash, 17 months ago

Keywords: boot-failure added

comment:6 by waddlesplash, 17 months ago

Blocking: 7665 removed
Note: See TracTickets for help on using tickets.