Bug#790571: please give-back capnproto on mipsel

Tom Lee <[email protected]>
Newsgroups gmane.linux.debian.devel.bugs.general,gmane.linux.debian.ports.mips
Message-ID <CAKwFPQ8QvqZNfEEsXA63D-qEE9=M0ZqQdDR9zqCRm+Q2m_bqrA@mail.gmail.com>
Just noticed that the description in the patch itself misleading --
please disregard that. My earlier email represents my best
understanding of the issue.

On Sat, Aug 1, 2015 at 1:28 PM, Tom Lee <[email protected]> wrote:
> Control: tags -1 +patch
>
> Alrighty, potential patch is attached. Can you folks try it out & let
> me know if it works? If all looks good I'll prep a new upload & send
> the patch upstream.
>
> Dejan, you were right on the money with the page size thing. Looks
> like the write operation in async-unix-test.c++ writes data to the
> pipe until the underlying buffer is completely filled. At that point,
> the write operation fails & the test continues until we hit the read
> operation. At that point we try to read 4096 bytes. It seems like if
> PIPE_BUF > 4096 (where PIPE_BUF is typically the size of a page), the
> pipe doesn't become writable & so the test fails.
>
> I find this behavior a little surprising, but I can reproduce it
> myself on x86_64 by simply changing the buffer size to something less
> than PIPE_BUF. Interesting stuff.
>
> With this patch applied I wouldn't be surprised if we saw the write
> notification fire multiple times (once per PIPE_BUF bytes read). Even
> if that is happening, I feel like we're testing the intended behavior.
>
> Cheers,
> Tom
>
>
> On Sat, Aug 1, 2015 at 9:04 AM, Tom Lee <[email protected]> wrote:
>> Control: tags +confirmed
>>
>> Dejan, Arturo, thanks for looking into this. Sorry I've been so slow
>> to get back to you.
>>
>> Arturo, I understand you've followed up with upstream regarding the
>> affected tests & Kenton's helping you out with some experimental
>> patches to disable the failing tests. I'd be interested to know how
>> that works out, but I do worry that by disabling the tests we'll be
>> potentially glossing over a real issue.
>>
>> Dejan, I think you might be onto something with that 4k buffer but let
>> me look into it a little. Are you aware of any porterboxes with
>> similar setups to mips-aql-02 + mipsel-manda-0{1,2}?
>> https://db.debian.org/machines.cgi?host=eder (Loongson 2E) looks like
>> it might be a promising candidate from a quick google around.
>>
>> I'm guessing this is likely what's causing builds to fail on several
>> other archs too.
>>
>> Cheers,
>> Tom
>>
>> On Fri, Jul 17, 2015 at 8:20 AM, Dejan Latinovic
>> <[email protected]> wrote:
>>>
>>> Hi,
>>> I have tested capnproto on a few local machines.
>>> Initially, build failed on all boards.
>>> On different MIPS boards, different tests were failing.
>>>
>>>
>>> AsyncUnixTest.WriteObserver fails if the kernel PAGESIZE is larger that 4k.
>>>
>>> After I reduced PAGESIZE to 4096 on CI20, all tests passed.
>>>
>>> The solution could be to increase buffer size:
>>>> char buffer[4096]
>>> (src/kj/async-unix-test.c++ +416)
>>> I had increased it to 16384 and tried it on Loongson 3A
>>> (PAGESIZE is 16k, same board as mipsel-manda-01, mipsel-manda-02),
>>> all test passed.
>>> We should keep on mind that pagesize on some MIPS board is up to 64k.
>>> This solution should be discussed upstream.
>>>
>>>
>>> On EdgeRouter Pro (mips-aql-02),
>>> these two test failed:
>>>> [  FAILED  ] 2 tests, listed below:
>>>> [  FAILED  ] AsyncUnixTest.SignalWithValue
>>>> [  FAILED  ] AsyncUnixTest.SignalWithPointerValue
>>>
>>> I will do further investigating.
>>>
>>> Best Regards,
>>> Dejan
>>
>>
>>
>> --
>> Tom Lee / http://tomlee.co / @tglee
>
>
>
> --
> Tom Lee / http://tomlee.co / @tglee



-- 
Tom Lee / http://tomlee.co / @tglee
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.