Hi Ricardo,

You are right:

$ ~/src/mirage-skeleton/device-usage/kv_ro$ sudo 
/home/ehirdoy/.opam/4.06.1+lto/bin/solo5-hvt --disk=fat_block1.img kv_ro.hvt -l 
"*:debug"
            |      ___|
  __|  _ \  |  _ \ __ \
\__ \ (   | | (   |  ) |
____/\___/ _|\___/____/
Solo5: Memory map: 512 MB addressable:
Solo5:   reserved @ (0x0 - 0xfffff)
Solo5:       text @ (0x100000 - 0x22dfff)
Solo5:     rodata @ (0x22e000 - 0x26afff)
Solo5:       data @ (0x26b000 - 0x34dfff)
Solo5:       heap >= 0x34e000 < stack < 0x20000000
ERROR: solo5_block_read(80) size=4096 block_size=512
2019-04-09 14:01:16 -00:00: ERR [application] main: (Failure "error reading 
essential sectors: Invalid argument")
Raised at file "src/core/lwt.ml", line 2998, characters 20-29
Called from file "lib/main.ml", line 64, characters 15-25

FAT requests 4096 bytes to read, which caused this error. Actually FAT doesn't 
need 4096 bytes but it wants FAT sector size as:
https://github.com/ehirdoy/ocaml-fat/commit/32894feed7c9248ae50d332e4fabdeee22f0df8a

If FAT sector size == block sector size quite often it's 512 bytes, the above 
works ok.
We could survive temporary for the above fix,
but probably solo5_block_read() needs to support multi sector read eventually?

________________________________
From: Hiroshi Doyu
Sent: Tuesday, April 9, 2019 12:06 PM
To: [email protected]
Cc: [email protected]
Subject: Re: [MirageOS-devel] How to support a larger disk with hvt + 
kv_ro=direct (pass-through)?

Hi Ricardo,

Most likely you are right since this shows too. I'll check this later.
https://github.com/ehirdoy/ocaml-fat/commit/32894feed7c9248ae50d332e4fabdeee22f0df8a

On Mon, 2019-04-08 at 14:03 +0000, Ricardo Koller wrote:
> Hi,
>
> I'm pretty sure it's this: 
> https://github.com/Solo5/solo5/blob/master/bindings/hvt/block.c#L77-L80
> And from those three checks, the most likely one failing is that the request 
> is larger than a block.
>
> Could you confirm that please? in that case, then we need to split the 
> request somewhere, or even better, fix this: 
> https://github.com/Solo5/solo5/issues/325
>
> Ricardo
>
> ----- Original message -----
> From: Hiroshi Doyu <[email protected]>
> Sent by: "MirageOS-devel" <[email protected]>
> To: "[email protected]" 
> <[email protected]>
> Cc:
> Subject: Re: [MirageOS-devel] How to support a larger disk with hvt + 
> kv_ro=direct (pass-through)?
> Date: Mon, Apr 8, 2019 7:01 AM
>
> I found that "--kv_ro=fat" integrates FAT+disk.image automatically.
> This works with "-t unix --kv_ro=fat" but not with "-t hvt --kv_ro=fat" as 
> below.
> Any hint to investigate further?
>
> $~/src/mirage-skeleton/device-usage/kv_ro$ sudo ./solo5-hvt 
> --disk=fat_block1.img kv_ro.hvt -l "*:debug"
>             |      ___|
>   __|  _ \  |  _ \ __ \
> \__ \ (   | | (   |  ) |
> ____/\___/ _|\___/____/
> Solo5: Memory map: 512 MB addressable:
> Solo5:     unused @ (0x0 - 0xfffff)
> Solo5:       text @ (0x100000 - 0x22bfff)
> Solo5:     rodata @ (0x22c000 - 0x268fff)
> Solo5:       data @ (0x269000 - 0x34bfff)
> Solo5:       heap >= 0x34c000 < stack < 0x20000000
> 2019-04-08 10:27:23 -00:00: ERR [application] main: (Failure "error reading 
> essential sectors: Invalid argument")
> Raised at file "src/core/lwt.ml", line 2998, characters 20-29
> Called from file "lib/main.ml", line 64, characters 15-25
>
>
> Also "fat" command seems to need "--unbuffered" appended.
>
> On Tue, 2019-03-26 at 18:44 +0200, Hiroshi Doyu wrote:
> > Hello,
> >
> > Configured unix+kv_ro=direct, it seems to read a file from disk 
> > dynamically[1].
> > But hvt+kv_ro=direct seems to use a ramdisk(crunch?) statically[2].
> >
> > How can hvt do the similar pass-through to a file as "unix+kv_ro=direct"?
> >
> > [1]
> > $ mirage configure -t unix --kv_ro=direct && make depend && make
> > $ ./kv_ro
> > 2019-03-26 16:31:28 +00:00: INF [application] foo
> > $ echo -n "hello" > t/secret
> > $ ./kv_ro
> > 2019-03-26 16:32:15 +00:00: INF [application] hello
> >
> > [2]
> > $ mirage configure -t hvt --kv_ro=direct && make depend && make
> > $ sudo ./solo5-hvt kv_ro.hvt
> > 2019-03-26 16:34:19 -00:00: INF [application] foo
> > $ echo -n "hello" > t/secret
> > $ sudo ./solo5-hvt kv_ro.hvt
> > 2019-03-26 16:35:11 -00:00: INF [application] foo
> >
> > the above code change for skelton/device-usage/kv_ro:
> > https://github.com/ehirdoy/mirage-skeleton/commit/bff6688e075ffec67723d5663a984263bffa8563
> _______________________________________________
> MirageOS-devel mailing list
> [email protected]
> https://lists.xenproject.org/mailman/listinfo/mirageos-devel
>
>
>
_______________________________________________
MirageOS-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/mirageos-devel

Reply via email to