[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Mirage on Xen/ARM status



On 20 June 2014 11:23, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
> On 19 Jun 2014, at 15:06, Dave Scott <Dave.Scott@xxxxxxxxxx> wrote:
>>
>> On 19 Jun 2014, at 14:36, Richard Mortier <Richard.Mortier@xxxxxxxxxxxxxxxx> 
>> wrote:
>>
>>>
>>> On 19 Jun 2014, at 12:24, Thomas Leonard <talex5@xxxxxxxxx> wrote:
>>>
>>>> Perhaps the ones complement stuff should be moved out of
>>>> mirage-platform anyway? It seems to be specific to networking, rather
>>>> than to any particular platform. I see there's also a third version in
>>>> the ns3 directory, which always returns zero.
>>>
>>> yes; ones complement checksums are used in several IP protocols. i don't 
>>> know that they're used elsewhere (storage, etc). i guess efficient 
>>> implementations are likely to be platform specific, though perhaps one 
>>> would expect the compiler to dtrt rather than hand tweaking.

Yes.

I think the term "platform" might be confusing here, though. The code
might depend on the CPU type (arm, x86, etc), but it shouldn't depend
on the Mirage platform. I think mirage-platform is for code that must
be different for Xen, Unix, etc, not for different CPU types.

>> IIRC the reason the checksum code didnât get moved out of the platform tree 
>> when the network stack itself was moved out was because we donât have the 
>> right build/link magic to include C code from other libraries.
>
> This is exactly why it's in platform (along with all the other C bindings).  
> Thomas, does the new installation scheme for MiniOS help with making the 
> MiniOS headers available for other libraries to compile against them?  I'd be 
> very happy to move these stubs into mirage-tcpip and make them easier to 
> maintain.

Yes. You can just do e.g.:

$ pkg-config --cflags libminios
[...] -I/usr/include/mini-os

/usr/include/mini-os contains all the mini-os headers, as well as a
copy of the Xen public headers they depend on
(/usr/include/mini-os/xen).

>> Iâm not sure if ones complement checksums are used in storage. However I 
>> believe the CRC polynomial used by iSCSI (and btrfs?) is now implemented in 
>> Intel CPUs. Perhaps one day our OCaml CRC library will have optimised asm 
>> code for several platforms (generated via some staged compilation from some 
>> OCaml source Iâm sure)
>
> Yes, in SSE 4.2 I believe.  Completely randomly, I also noticed that the 
> STTNI instructions also provide faster ways of doing substring searching that 
> may be useful to expose in the Re engine if the speedup justifies the 
> complexity:
>
> http://www.strchr.com/strcmp_and_strlen_using_sse_4.2
>
> -anil
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.