From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, dri-devel@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 07/40] drm: Add a simple generator of random permutations
Date: Fri, 16 Dec 2016 11:38:35 +0200 [thread overview]
Message-ID: <1481881115.3134.8.camel@linux.intel.com> (raw)
In-Reply-To: <20161216074718.32500-8-chris@chris-wilson.co.uk>
On pe, 2016-12-16 at 07:46 +0000, Chris Wilson wrote:
> When testing, we want a random but yet reproducible order in which to
> process elements. Here we create an array which is a random (using the
> Tausworthe PRNG) permutation of the order in which to execute.
>
> v2: Tidier code by David Herrmann
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: David Herrmann <dh.herrmann@gmail.com>
<SNIP>
> @@ -0,0 +1,41 @@
> +#include <linux/bitops.h>
> +#include <linux/kernel.h>
> +#include <linux/random.h>
> +#include <linux/slab.h>
> +#include <linux/types.h>
> +
> +#include "drm_random.h"
> +
> +static inline u32 prandom_u32_max_state(u32 ep_ro, struct rnd_state *state)
> +{
> + return upper_32_bits((u64)prandom_u32_state(state) * ep_ro);
> +}
> +
To be submitted upstream. If you prefix the function here, there won't
be a conflict when the upstream part gets merged.
> +++ b/drivers/gpu/drm/lib/drm_random.h
> @@ -0,0 +1,21 @@
> +#ifndef __DRM_RANDOM_H__
> +#define __DRM_RANDOM_H
> +
> +#include <linux/random.h>
> +
> +#define RND_STATE_INITIALIZER(seed__) ({ \
> + struct rnd_state state__; \
> + prandom_seed_state(&state__, (seed__)); \
> + state__; \
> +})
> +
> +#define RND_STATE(name__, seed__) \
> + struct rnd_state name__ = RND_STATE_INITIALIZER(seed__)
For upstream submission too. Same comment as above.
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Regards, Joonas
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-12-16 9:38 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-16 7:46 drm_mm range manager fixes, take 2 Chris Wilson
2016-12-16 7:46 ` [PATCH v2 01/40] drm/i915: Use the MRU stack search after evicting Chris Wilson
2016-12-16 9:03 ` Joonas Lahtinen
2016-12-16 7:46 ` [PATCH v2 02/40] drm/i915: Simplify i915_gtt_color_adjust() Chris Wilson
2016-12-16 7:46 ` [PATCH v2 03/40] drm: Add drm_mm_for_each_node_safe() Chris Wilson
2016-12-16 9:06 ` Joonas Lahtinen
2016-12-16 13:32 ` Daniel Vetter
2016-12-16 7:46 ` [PATCH v2 04/40] drm: Constify the drm_mm API Chris Wilson
2016-12-16 13:45 ` Daniel Vetter
2016-12-16 7:46 ` [PATCH v2 05/40] drm: Compile time enabling for asserts in drm_mm Chris Wilson
2016-12-16 7:46 ` [PATCH v2 06/40] drm: Add some kselftests for the DRM range manager (struct drm_mm) Chris Wilson
2016-12-16 7:46 ` [PATCH v2 07/40] drm: Add a simple generator of random permutations Chris Wilson
2016-12-16 9:38 ` Joonas Lahtinen [this message]
2016-12-16 7:46 ` [PATCH v2 08/40] drm: Add a simple prime number generator Chris Wilson
2016-12-16 9:31 ` Lukas Wunner
2016-12-16 9:43 ` Chris Wilson
2016-12-16 10:08 ` Lukas Wunner
2016-12-16 10:25 ` Chris Wilson
2016-12-16 13:23 ` [PATCH] lib: " Chris Wilson
2016-12-16 13:53 ` Chris Wilson
2016-12-16 14:02 ` [PATCH v3] " Chris Wilson
2016-12-16 18:47 ` kbuild test robot
2016-12-16 7:46 ` [PATCH v2 09/40] drm: kselftest for drm_mm_init() Chris Wilson
2016-12-16 9:41 ` Joonas Lahtinen
2016-12-16 7:46 ` [PATCH v2 10/40] drm: kselftest for drm_mm_debug() Chris Wilson
2016-12-16 9:44 ` Joonas Lahtinen
2016-12-16 10:01 ` Chris Wilson
2016-12-16 7:46 ` [PATCH v2 11/40] drm: kselftest for drm_mm_reserve_node() Chris Wilson
2016-12-16 7:46 ` [PATCH v2 12/40] drm: kselftest for drm_mm_insert_node() Chris Wilson
2016-12-16 14:02 ` Joonas Lahtinen
2016-12-16 14:59 ` Chris Wilson
2016-12-16 7:46 ` [PATCH v2 13/40] drm: kselftest for drm_mm_replace_node() Chris Wilson
2016-12-16 7:46 ` [PATCH v2 14/40] drm: kselftest for drm_mm_insert_node_in_range() Chris Wilson
2016-12-16 14:08 ` Joonas Lahtinen
2016-12-16 7:46 ` [PATCH v2 15/40] drm: kselftest for drm_mm and alignment Chris Wilson
2016-12-16 7:46 ` [PATCH v2 16/40] drm: kselftest for drm_mm and eviction Chris Wilson
2016-12-16 7:46 ` [PATCH v2 17/40] drm: kselftest for drm_mm and range restricted eviction Chris Wilson
2016-12-16 7:46 ` [PATCH v2 18/40] drm: kselftest for drm_mm and top-down allocation Chris Wilson
2016-12-16 7:46 ` [PATCH v2 19/40] drm: kselftest for drm_mm and color adjustment Chris Wilson
2016-12-16 7:46 ` [PATCH v2 20/40] drm: kselftest for drm_mm and color eviction Chris Wilson
2016-12-16 14:38 ` Joonas Lahtinen
2016-12-16 14:48 ` Chris Wilson
2016-12-16 7:46 ` [PATCH v2 21/40] drm: kselftest for drm_mm and restricted " Chris Wilson
2016-12-16 14:41 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 22/40] drm/i915: Build DRM range manager selftests for CI Chris Wilson
2016-12-16 7:47 ` [PATCH v2 23/40] drm: Promote drm_mm alignment to u64 Chris Wilson
2016-12-16 7:47 ` [PATCH v2 24/40] drm: Fix kerneldoc for drm_mm_scan_remove_block() Chris Wilson
2016-12-16 10:09 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 25/40] drm: Detect overflow in drm_mm_reserve_node() Chris Wilson
2016-12-16 10:11 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 26/40] drm: Simplify drm_mm_clean() Chris Wilson
2016-12-16 7:47 ` [PATCH v2 27/40] drm: Add asserts to catch overflow in drm_mm_init() and drm_mm_init_scan() Chris Wilson
2016-12-16 13:10 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 28/40] drm: Extract struct drm_mm_scan from struct drm_mm Chris Wilson
2016-12-16 7:47 ` [PATCH v2 29/40] drm: Rename prev_node to hole in drm_mm_scan_add_block() Chris Wilson
2016-12-16 14:41 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 30/40] drm: Unconditionally do the range check " Chris Wilson
2016-12-16 7:47 ` [PATCH v2 31/40] drm: Fix application of color vs range restriction when scanning drm_mm Chris Wilson
2016-12-16 7:47 ` [PATCH v2 32/40] drm: Compute tight evictions for drm_mm_scan Chris Wilson
2016-12-16 7:47 ` [PATCH v2 33/40] drm: Optimise power-of-two alignments in drm_mm_scan_add_block() Chris Wilson
2016-12-16 7:47 ` [PATCH v2 34/40] drm: Simplify drm_mm scan-list manipulation Chris Wilson
2016-12-16 13:06 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 35/40] drm: Apply tight eviction scanning to color_adjust Chris Wilson
2016-12-16 14:14 ` Joonas Lahtinen
2016-12-16 14:24 ` Chris Wilson
2016-12-16 7:47 ` [PATCH v2 36/40] drm: Wrap drm_mm_node.hole_follows Chris Wilson
2016-12-16 13:04 ` Joonas Lahtinen
2016-12-16 13:31 ` Chris Wilson
2016-12-16 13:41 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 37/40] drm: Apply range restriction after color adjustment when allocation Chris Wilson
2016-12-16 12:57 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 38/40] drm: Use drm_mm_insert_node_in_range_generic() for everyone Chris Wilson
2016-12-16 13:01 ` Joonas Lahtinen
2016-12-16 7:47 ` [PATCH v2 39/40] drm: Improve drm_mm search (and fix topdown allocation) with rbtrees Chris Wilson
2016-12-16 13:46 ` Joonas Lahtinen
2016-12-16 13:56 ` Chris Wilson
2016-12-16 7:47 ` [PATCH v2 40/40] drm: kselftest for drm_mm and bottom-up allocation Chris Wilson
2016-12-16 9:15 ` ✓ Fi.CI.BAT: success for series starting with [v2,01/40] drm/i915: Use the MRU stack search after evicting Patchwork
2016-12-16 16:31 ` ✗ Fi.CI.BAT: failure for series starting with [v2,01/40] drm/i915: Use the MRU stack search after evicting (rev3) Patchwork
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=1481881115.3134.8.camel@linux.intel.com \
--to=joonas.lahtinen@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox