From: Aleksandr Lyapunov <alyapunov@tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>,
tarantool-patches@dev.tarantool.org, korablev@tarantool.org,
tsafin@tarantool.org, gorcunov@gmail.com
Subject: Re: [Tarantool-patches] [PATCH small 0/2] Aligned lsregion
Date: Sat, 16 May 2020 22:09:32 +0300 [thread overview]
Message-ID: <3f222d25-64d0-17c7-6c75-63cd1711f147@tarantool.org> (raw)
In-Reply-To: <2bb14550-b2f0-5f0f-1ea4-400d7cbd48bf@tarantool.org>
On 5/16/20 2:22 AM, Vladislav Shpilevoy wrote:
>
>> lsregion will allocate aligned addresses as long as you request only aligned sizes,
>> up to sizeof(uintptr_t) (see lslab_sizeof()).
>> This property is not documented (maybe it should be!). It is also similar to mempool
>> property, see mempool_create description.
> Yeah, here are 3 problems:
> - lsregion is used not only for tuples, but for bps tree extents too. We can't
> rely on their alignment being the same. Sanitizer revealed, that both extents
> and tuples are not aligned;
Since you decided to implement _aligned_alloc anyway, it's not very
important, but
I want to find the truth. It could help us one day.
Extents' sizes are also (very) aligned, all you need is to align tuple
sizes, as I proposed.
Try it and you will see: if you align sizes (up to 8) - you'll get
aligned addresses.
> - sanitizer revealed, that mempool_alloc returns unaligned addresses too. I am
> going to look into that after lsregion;
I checked the code and I confirm that if mempool item size is aligned,
the addresses
will be also aligned. Could you suggest me how to get those sanitizer
results?
I also see that small_alloc aligns all allocations with 8 bytes.
> - slab first position can be aligned not enough. So we can't assume anything
> about first address in a slab. And therefore about all the other addresses
> too.
Yes, that position is aligned with 8 bytes now. Are there any cases when
we need bigger
align factor?
>
>> I like one-line change more.
>>
>> If you still want _reserve and _aligned_alloc method for further purposes, please
>> read my by-commit comments.
> I want lsregion be consistent with other allocators, and provide basic
> API for aligned allocations. Like region does.
Ok, that's a great idea, doesn't it earn a special ticket on github?
next prev parent reply other threads:[~2020-05-16 19:09 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-14 23:31 Vladislav Shpilevoy
2020-05-14 23:31 ` [Tarantool-patches] [PATCH small 1/2] lsregion: introduce lsregion_reserve() Vladislav Shpilevoy
2020-05-15 12:35 ` Aleksandr Lyapunov
2020-05-14 23:31 ` [Tarantool-patches] [PATCH small 2/2] lsregion: provide aligned version of alloc Vladislav Shpilevoy
2020-05-15 13:03 ` Aleksandr Lyapunov
2020-05-15 23:24 ` Vladislav Shpilevoy
2020-05-15 12:26 ` [Tarantool-patches] [PATCH small 0/2] Aligned lsregion Aleksandr Lyapunov
2020-05-15 23:22 ` Vladislav Shpilevoy
2020-05-16 19:09 ` Aleksandr Lyapunov [this message]
2020-05-17 13:56 ` Vladislav Shpilevoy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3f222d25-64d0-17c7-6c75-63cd1711f147@tarantool.org \
--to=alyapunov@tarantool.org \
--cc=gorcunov@gmail.com \
--cc=korablev@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--cc=tsafin@tarantool.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH small 0/2] Aligned lsregion' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox