Subject: Re: [boost] Serialisation: Is is_trivial<T> a sufficient precondition to bypass serialisation?
From: Olaf van der Spek (ml_at_[hidden])
Date: 2015-02-06 07:52:55
On Fri, Feb 6, 2015 at 1:20 PM, Niall Douglas <s_sourceforge_at_[hidden]> wrote:
> On 6 Feb 2015 at 11:07, Mathias Gaunard wrote:
>> > As with network sockets, most DMA engines for disk i/o have hard
>> > limits on scatter gather buffer size. That isn't AFIO's problem.
>> So if I try to write a std::vector that is too large to fit in a
>> scatter/gather buffer, my write will fail?
> AFIO observes the IOV_MAX batch limit, so on POSIX with pwritev()
> support no it should never fail, though of course you lose atomicity
> between IOV_MAX batches. On POSIX without pwritev() support AFIO
> issues each buffer singly anyway, so your atomicity is per buffer.
> On Windows if buffered i/o is on then there is no limit and atomicity
> is per buffer (Windows has no scatter gather file i/o functions for
> buffered files). If buffered i/o is off, the WriteFileGather() API
> currently has an unofficial limit of 32Mb on x64 operating systems
> due to NT kernel structure limits. Because this limit is not
> documented and not stable even across 32 bit vs 64 bit systems never
> mind between Intel and ARM, AFIO passes through your request as-is,
> and returns an error if the WriteFileGather() API does.
What's the definition of atomicity here?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk