Re: virtio ring cleanups, which save stack on older gcc

Minchan Kim
2014-05-29T23:44:49Z

On Thu, May 29, 2014 at 08:38:33PM +0930, Rusty Russell wrote:
> Minchan Kim <minchan@kernel.org> writes:
> > Hello Rusty,
> >
> > On Thu, May 29, 2014 at 04:56:41PM +0930, Rusty Russell wrote:
> >> They don't make much difference: the easier fix is use gcc 4.8
> >> which drops stack required across virtio block's virtio_queue_rq
> >> down to that kmalloc in virtio_ring from 528 to 392 bytes.
> >>
> >> Still, these (*lightly tested*) patches reduce to 432 bytes,
> >> even for gcc 4.6.4. Posted here FYI.
> >
> > I am testing with below which was hack for Dave's idea so don't have
> > a machine to test your patches until tomorrow.
> > So, I will queue your patches into testing machine tomorrow morning.
>
> More interesting would be updating your compiler to 4.8, I think.
> Saving <100 bytes on virtio is not going to save you, right?

But in my report, virtio_ring consumes more than yours.
As I mentioned other thread to Steven, I don't know why stacktrace report
vring_add_indirect consumes 376-byte. Apparently, objdump says it didn't
consume too much so I'd like to test your patches and see the result.

Thanks.

[ 1065.604404] kworker/-5766 0d..2 1071625993us : stack_trace_call: 10) 6376 376 vring_add_indirect+0x36/0x200
[ 1065.604404] kworker/-5766 0d..2 1071625993us : stack_trace_call: 11) 6000 144 virtqueue_add_sgs+0x2e2/0x320
[ 1065.604404] kworker/-5766 0d..2 1071625993us : stack_trace_call: 12) 5856 288 __virtblk_add_req+0xda/0x1b0
[ 1065.604404] kworker/-5766 0d..2 1071625993us : stack_trace_call: 13) 5568 96 virtio_queue_rq+0xd3/0x1d0

>
> Cheers,
> Rusty.
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: email@kvack.org

--
Kind regards,
Minchan Kim