On Mon, 23 Jun 2014, Mark Cave-Ayland wrote:
On 23/06/14 20:26, BALATON Zoltan wrote:
(add Kevin to CC)
I'm afraid as you're the only person that can boot MorphOS this far
then we need you to diagnose and suggest a suitable alternative by
comparing the before and after output. Since MacOS is already a
supported client then if no solution can be found then it is likely
that this patch will be reverted :(
So should I revert the patch for now? We're already in soft freeze.
Well let's see if Zoltan can make any headway with debugging over the
next few days; if there's no progress by the weekend then sadly my
recommendation would be to revert in time for -rc0 as this definitely
causes intermittent boot failures in Darwin for me.
It would be nicer if it could be fixed instead of reverting. You could
help detangling the macio.c code for a start.
Just to clarify here: the macio/DBDMA code is quite complicated, but
this is because this device has to work around to the fact that
currently the DMA I/O routines currently need sector alignment
whereas macio requires byte-level alignment. There has been quite a
lot of work at the lower levels to support byte-level alignment (see
Kevin's series at
http://lists.gnu.org/archive/html/qemu-devel/2014-01/msg02163.html)
but until we can specify transfers to byte granularity in the
dma_bdrv_*() APIs then there isn't much we can do to clean up the
macio.c code.
Kevin, are there any plans to bubble the byte-granularity block layer
changes up to the dma_bdrv_*() APIs in the near future?
Please bear in mind that QEMU supports a large number of OSs, and
there is already an enthusiastic group of people using Alex's OS X
work (see emaculation for many examples) so introducing an
intermittent fault on a supported OS is not an option here.
I should also re-emphasise that Alex/Andreas work on many different
parts of QEMU, and my work is currently unsponsored so while we are
all keen to improve QEMU to the point where it can emulate new OSs
such as MorphOS, it's not the case that we can simply drop what we
are doing at the time to focus on an issue that affects a single OS
which is new and currently unsupported.
I also work unsponsored on this and not sure how long can I still find
time for it. I've already spent much more with this than I originally
planned as I'm doing it since end of this February already. So I'd
like my work so far to get upstream so that if I have to finish it's
not lost and others could use and build on it. If there's no chance
that this can be achieved by 2.1 then you could revert this patch and
get back to it in 2.2 but that would delay things by months again. My
patches are on the list for quite some time so it's not like I'm
asking you to work on this in the last minute and this bug was
reported on May 4th. I appreciate your help so far very much and don't
exepct this to be highest priority but I'd like to make some progress
too.
Now I think it's fair to say that I've spent quite a few hours
helping you and coming up with the original version of this patch,
and I'm glad that you
Now doubt about that, thank you very much again.
are now seeing success with this. But what is important to us right
now heading towards a release is that patches don't cause any
regressions.
All I can say is that debugging this stuff isn't easy, particularly
with MorphOS which has some rather unusual behaviours. But what we
really need from you now over the next few days is for you to compare
the debug output between the working and non-working cases and figure
out if we can fix this in time for the 2.1 release. You have
everything you need (including my acceptance test of booting both
MorphOS and Darwin ISOs), so time to take a deep breath and begin
what should be a challenging yet ultimately rewarding debugging
process :)
I'm still working on finding a solution for the exception problems
with OpenBIOS that prevent MorphOS from working and I failed to
understand the whole working of macio, DBDMA and the whole block layer
so far