[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-458851476 This PR doesn't change anything specific for being 32/64 bit, but like any changes on the native layer, having cross-compilation would help (me or anyone) to provide the 32 bit binaries without pain. IMHO it should be better to have the cross-compilation PR of Otavio merged first and I would use it to cross-compile this PR, but I prefer to have them separate if, for ANY reasons, one of them will need to be reverted, they weren't tied up together... This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-458845348 @michaelandrepearce > this is great stuff!!! looking forward to it. The commit here is just mine :P I've removed the part of Otavio for the resons below.. @clebertsuconic @michaelandrepearce I need your advice re this one indeed: I think that the changes of Otavio to enable cross-compilation and improve (a lot!!!) the compilation process deserve its own PR, wdyt? This commit is a change in the mechanics of how we use libAIO and I'm not sure is ok to tied them together: the changes of Otavio are useful per se... This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-458487385 @michaelandrepearce @clebertsuconic I have verified that no HW fences are needed so now worries about 32/64 bit :) I've put some more comments and I'm waiting @orpiske to provide the missing bits to allow cross-compilation :+1: This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-458418530 @michaelandrepearce @clebertsuconic Today I will talk with some of the kernel guys that has written libAIO: I've taken a deep look to https://elixir.bootlin.com/linux/latest/source/fs/aio.c#L1148 and seems that for x86 I could avoid any hardware barriers. `lfence,sfence` are hw barriers needed just when used among non-temporal stores ie that won't use the caches, while temporal x86 stores are guaranteed to not being reordered by the processor. I need to cross-compile the 32 bit version accordly, many thanks to super- @orpiske for his help! This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-457865466 @michaelandrepearce > We will need 32 bit support. I remember there being someone in the community on a user thread being on 32 for valid reason. Yep. that's why I've summoned @orpiske :) I will probablu need some help with CMake (that I'm not that use to it) in order to provide 2 different implementations for the barriers (x86 and x86_64): I'm used to write/read assembly but really bad to use build tools :P This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-457834119 On our CI (that's using a x86_64) it has passed without any issue :+1: This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-457811530 @michaelandrepearce > whats the compatibility of using the c++ c11 features I don't know , that' s why I've implemented the barriers by myself, instead of using the ones provided by C11. Re the barriers I've implemented they work for any x86_64 platform (the version of Linux won't make any difference, because I'm not using OS features, but just arch-specific instructions). I could provide an implementation of x86 (32 bit) and we won't need any support (+ eventual incompatibilities) of C11. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-457728883 About the memory barriers? Are the standard implementation used on the c++11 memory model and I have asked a colleague of mine that work on the Linux kernel, specifically on libAIO ie Paolo Bonzini on https://github.com/redhat-cip/fio/blob/master/engines/libaio.c This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-457643382 It should be a nice step for a future optimization that would allow to use 1 core just to retrieve IO events in a busy loop (with some idle strategy, if necessary) to reduce dramatically latencies: DPDK uses a similar approach to improve dramatically networking on user space. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events
franz1981 commented on issue #2523: ARTEMIS-1977 ASYNCIO can reduce sys-calls to retrieve I/O events URL: https://github.com/apache/activemq-artemis/pull/2523#issuecomment-457639282 @michaelandrepearce I suppose this one could be of some interest to you :) @orpiske Please mate I need some help to compile this one for 32 bit, I'm not the good to configure cross-compilation on my box and I haven't an old box to do it... This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services