All of lore.kernel.org
 help / color / mirror / Atom feed
* Boundary calculation
@ 2018-07-16 19:25 Ricardo Biehl Pasquali
  2018-07-17  6:43 ` Clemens Ladisch
  0 siblings, 1 reply; 5+ messages in thread
From: Ricardo Biehl Pasquali @ 2018-07-16 19:25 UTC (permalink / raw)
  To: alsa-devel

Hello.

I can't get the tricky boundary calculation. Perhaps I'm
missing some obvious thing, or maybe it's really some
circumvent for a specific case that was not commented.

The current calculation for boundary is:

	boundary = buffer_size;
	while (boundary * 2 <= LONG_MAX - buffer_size)
		boundary *= 2;

I've checked out some repositories, specially alsa-driver
in ALSA git, and I realized this calculation exists at
least since 2001. I guess it was Jaroslav who wrote.

Visualization of the calculation (B = buffer_size):

                           LONG_MAX
-------------------------------
\______________/           \__/
     B * 4                  B
\______/
 B * 2
\__/
 B

Why isn't a simpler calculation used instead? e.g.:

	/* closest multiple of buffer size less or equal LONG_MAX */
	boundary = LONG_MAX - LONG_MAX % buffer_size;

                           LONG_MAX
-------------------------------
\__________________________/
           B * 6

Cheers!

	pasquali

^ permalink raw reply	[flat|nested] 5+ messages in thread
* Boundary calculation
@ 2018-07-17 13:13 Ricardo Biehl Pasquali
  2018-07-17 15:33 ` Clemens Ladisch
  0 siblings, 1 reply; 5+ messages in thread
From: Ricardo Biehl Pasquali @ 2018-07-17 13:13 UTC (permalink / raw)
  To: clemens; +Cc: alsa-devel

Have you addressed your reply to pasqualirb at gmail.com?
I have not received in my mail neither yours nor Takashi's
reply. I had to copy manually the headers and the message.

Thanks!

Clemens Ladisch wrote:
> To ensure that the factor is a power of two.

Ok, but why LONG_MAX - buffer_size?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-07-17 15:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-16 19:25 Boundary calculation Ricardo Biehl Pasquali
2018-07-17  6:43 ` Clemens Ladisch
2018-07-17  7:41   ` Takashi Iwai
  -- strict thread matches above, loose matches on Subject: below --
2018-07-17 13:13 Ricardo Biehl Pasquali
2018-07-17 15:33 ` Clemens Ladisch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.