* [PATCH i-g-t 1/3] lib: Add swap() macro
@ 2014-12-05 15:04 ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 2/3] lib/igt.cocci: Deal with min/max/swap ville.syrjala
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: ville.syrjala @ 2014-12-05 15:04 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
swap() will swap its two arguments while keeping the required
tmp variable hidden. Makes for neater code.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
lib/igt_aux.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 6c83c53..63e1b06 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -90,4 +90,10 @@ void intel_require_memory(uint32_t count, uint32_t size, unsigned mode);
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
+#define swap(a, b) do { \
+ typeof(a) _tmp = (a); \
+ (a) = (b); \
+ (b) = _tmp; \
+} while (0)
+
#endif /* IGT_AUX_H */
--
2.0.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH i-g-t 2/3] lib/igt.cocci: Deal with min/max/swap
2014-12-05 15:04 [PATCH i-g-t 1/3] lib: Add swap() macro ville.syrjala
@ 2014-12-05 15:04 ` ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 3/3] tests: Run lib/igt.cocci ville.syrjala
2014-12-05 16:44 ` [PATCH i-g-t 1/3] lib: Add swap() macro Jani Nikula
2 siblings, 0 replies; 6+ messages in thread
From: ville.syrjala @ 2014-12-05 15:04 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Replace open coded min/max/swap with the macro invocation.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
lib/igt.cocci | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/lib/igt.cocci b/lib/igt.cocci
index adebb31..0d337bf 100644
--- a/lib/igt.cocci
+++ b/lib/igt.cocci
@@ -91,3 +91,39 @@ expression E;
@@
- assert(E);
+ igt_assert(E);
+
+// Replace open-coded swap()
+@@
+type T;
+T a, b, tmp;
+@@
+- tmp = a;
+- a = b;
+- b = tmp;
++ swap(a, b);
+
+// Replace open-coded min()
+@@
+expression a;
+expression b;
+@@
+(
+- ((a) < (b) ? (a) : (b))
++ min(a, b)
+|
+- ((a) <= (b) ? (a) : (b))
++ min(a, b)
+)
+
+// Replace open-coded max()
+@@
+expression a;
+expression b;
+@@
+(
+- ((a) > (b) ? (a) : (b))
++ max(a, b)
+|
+- ((a) >= (b) ? (a) : (b))
++ max(a, b)
+)
--
2.0.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH i-g-t 3/3] tests: Run lib/igt.cocci
2014-12-05 15:04 [PATCH i-g-t 1/3] lib: Add swap() macro ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 2/3] lib/igt.cocci: Deal with min/max/swap ville.syrjala
@ 2014-12-05 15:04 ` ville.syrjala
2014-12-05 16:44 ` [PATCH i-g-t 1/3] lib: Add swap() macro Jani Nikula
2 siblings, 0 replies; 6+ messages in thread
From: ville.syrjala @ 2014-12-05 15:04 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Found some open coded min()/max()/swap() macros.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tests/drv_hangman.c | 4 ++--
tests/eviction_common.c | 5 +----
tests/gem_seqno_wrap.c | 5 +----
tests/gem_stress.c | 7 ++-----
tests/kms_flip.c | 12 +++---------
5 files changed, 9 insertions(+), 24 deletions(-)
diff --git a/tests/drv_hangman.c b/tests/drv_hangman.c
index cdbded2..ec28c9d 100644
--- a/tests/drv_hangman.c
+++ b/tests/drv_hangman.c
@@ -33,6 +33,7 @@
#include "intel_chipset.h"
#include "drmtest.h"
+#include "igt_aux.h"
#include "igt_debugfs.h"
#include "ioctl_wrappers.h"
@@ -117,8 +118,7 @@ static void read_dfs(const char *fname, char *d, int maxlen)
static void _assert_dfs_entry(const char *fname, const char *s, bool inverse)
{
char tmp[1024];
- const int l = strlen(s) < sizeof(tmp) ?
- strlen(s) : sizeof(tmp);
+ const int l = min(strlen(s), sizeof(tmp));
read_dfs(fname, tmp, l + 1);
if (!inverse) {
diff --git a/tests/eviction_common.c b/tests/eviction_common.c
index 52578e2..4a12dcb 100644
--- a/tests/eviction_common.c
+++ b/tests/eviction_common.c
@@ -54,11 +54,8 @@ struct igt_eviction_test_ops
static void exchange_uint32_t(void *array, unsigned i, unsigned j)
{
uint32_t *i_arr = array;
- uint32_t i_tmp;
- i_tmp = i_arr[i];
- i_arr[i] = i_arr[j];
- i_arr[j] = i_tmp;
+ swap(i_arr[i], i_arr[j]);
}
static int minor_evictions(int fd, struct igt_eviction_test_ops *ops,
diff --git a/tests/gem_seqno_wrap.c b/tests/gem_seqno_wrap.c
index be4ab3d..7da7fdf 100644
--- a/tests/gem_seqno_wrap.c
+++ b/tests/gem_seqno_wrap.c
@@ -171,11 +171,8 @@ static void render_copyfunc(struct igt_buf *src,
static void exchange_uint(void *array, unsigned i, unsigned j)
{
unsigned *i_arr = array;
- unsigned i_tmp;
- i_tmp = i_arr[i];
- i_arr[i] = i_arr[j];
- i_arr[j] = i_tmp;
+ swap(i_arr[i], i_arr[j]);
}
static void run_sync_test(int num_buffers, bool verify)
diff --git a/tests/gem_stress.c b/tests/gem_stress.c
index 6e3a64c..9f20bde 100644
--- a/tests/gem_stress.c
+++ b/tests/gem_stress.c
@@ -570,11 +570,8 @@ static void init_set(unsigned set)
static void exchange_uint(void *array, unsigned i, unsigned j)
{
unsigned *i_arr = array;
- unsigned i_tmp;
- i_tmp = i_arr[i];
- i_arr[i] = i_arr[j];
- i_arr[j] = i_tmp;
+ swap(i_arr[i], i_arr[j]);
}
static void copy_tiles(unsigned *permutation)
@@ -741,7 +738,7 @@ static void init(void)
if (options.num_buffers == 0) {
tmp = gem_aperture_size(drm_fd);
- tmp = tmp > 256*(1024*1024) ? 256*(1024*1024) : tmp;
+ tmp = min(256 * (1024 * 1024), tmp);
num_buffers = 2 * tmp / options.scratch_buf_size / 3;
num_buffers /= 2;
igt_info("using %u buffers\n", num_buffers);
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 041f46a..e579ce0 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -165,7 +165,7 @@ static unsigned long gettime_us(void)
static void emit_dummy_load__bcs(struct test_output *o)
{
int i, limit;
- drm_intel_bo *dummy_bo, *target_bo, *tmp_bo;
+ drm_intel_bo *dummy_bo, *target_bo;
struct igt_fb *fb_info = &o->fb_info[o->current_fb_id];
unsigned pitch = fb_info->stride;
@@ -197,9 +197,7 @@ static void emit_dummy_load__bcs(struct test_output *o)
ADVANCE_BATCH();
}
- tmp_bo = dummy_bo;
- dummy_bo = target_bo;
- target_bo = tmp_bo;
+ swap(dummy_bo, target_bo);
}
intel_batchbuffer_flush(batch);
@@ -282,16 +280,12 @@ static void emit_dummy_load__rcs(struct test_output *o)
dst = &sb[1];
for (i = 0; i < limit; i++) {
- struct igt_buf *tmp;
-
copyfunc(batch, NULL,
src, 0, 0,
o->fb_width, o->fb_height,
dst, 0, 0);
- tmp = src;
- src = dst;
- dst = tmp;
+ swap(src, dst);
}
intel_batchbuffer_flush(batch);
--
2.0.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH i-g-t 1/3] lib: Add swap() macro
2014-12-05 15:04 [PATCH i-g-t 1/3] lib: Add swap() macro ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 2/3] lib/igt.cocci: Deal with min/max/swap ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 3/3] tests: Run lib/igt.cocci ville.syrjala
@ 2014-12-05 16:44 ` Jani Nikula
2014-12-05 17:06 ` Ville Syrjälä
2 siblings, 1 reply; 6+ messages in thread
From: Jani Nikula @ 2014-12-05 16:44 UTC (permalink / raw)
To: ville.syrjala, intel-gfx
On Fri, 05 Dec 2014, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> swap() will swap its two arguments while keeping the required
> tmp variable hidden. Makes for neater code.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> lib/igt_aux.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/lib/igt_aux.h b/lib/igt_aux.h
> index 6c83c53..63e1b06 100644
> --- a/lib/igt_aux.h
> +++ b/lib/igt_aux.h
> @@ -90,4 +90,10 @@ void intel_require_memory(uint32_t count, uint32_t size, unsigned mode);
> #define min(a, b) ((a) < (b) ? (a) : (b))
> #define max(a, b) ((a) > (b) ? (a) : (b))
>
> +#define swap(a, b) do { \
> + typeof(a) _tmp = (a); \
> + (a) = (b); \
> + (b) = _tmp; \
> +} while (0)
Nitpick, make the macro take pointers instead, and amend the cocci patch
accordingly? To a grumpy old C coder, swap(&a, &b) is so much more
obvious than swap(a, b)...
Jani.
> +
> #endif /* IGT_AUX_H */
> --
> 2.0.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH i-g-t 1/3] lib: Add swap() macro
2014-12-05 16:44 ` [PATCH i-g-t 1/3] lib: Add swap() macro Jani Nikula
@ 2014-12-05 17:06 ` Ville Syrjälä
2014-12-05 17:39 ` Jani Nikula
0 siblings, 1 reply; 6+ messages in thread
From: Ville Syrjälä @ 2014-12-05 17:06 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Fri, Dec 05, 2014 at 06:44:19PM +0200, Jani Nikula wrote:
> On Fri, 05 Dec 2014, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > swap() will swap its two arguments while keeping the required
> > tmp variable hidden. Makes for neater code.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > lib/igt_aux.h | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/lib/igt_aux.h b/lib/igt_aux.h
> > index 6c83c53..63e1b06 100644
> > --- a/lib/igt_aux.h
> > +++ b/lib/igt_aux.h
> > @@ -90,4 +90,10 @@ void intel_require_memory(uint32_t count, uint32_t size, unsigned mode);
> > #define min(a, b) ((a) < (b) ? (a) : (b))
> > #define max(a, b) ((a) > (b) ? (a) : (b))
> >
> > +#define swap(a, b) do { \
> > + typeof(a) _tmp = (a); \
> > + (a) = (b); \
> > + (b) = _tmp; \
> > +} while (0)
>
> Nitpick, make the macro take pointers instead, and amend the cocci patch
> accordingly? To a grumpy old C coder, swap(&a, &b) is so much more
> obvious than swap(a, b)...
But then it's different than the kernel swap() we all love.
>
> Jani.
>
>
> > +
> > #endif /* IGT_AUX_H */
> > --
> > 2.0.4
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Jani Nikula, Intel Open Source Technology Center
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH i-g-t 1/3] lib: Add swap() macro
2014-12-05 17:06 ` Ville Syrjälä
@ 2014-12-05 17:39 ` Jani Nikula
0 siblings, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2014-12-05 17:39 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
On Fri, 05 Dec 2014, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Fri, Dec 05, 2014 at 06:44:19PM +0200, Jani Nikula wrote:
>> On Fri, 05 Dec 2014, ville.syrjala@linux.intel.com wrote:
>> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >
>> > swap() will swap its two arguments while keeping the required
>> > tmp variable hidden. Makes for neater code.
>> >
>> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > ---
>> > lib/igt_aux.h | 6 ++++++
>> > 1 file changed, 6 insertions(+)
>> >
>> > diff --git a/lib/igt_aux.h b/lib/igt_aux.h
>> > index 6c83c53..63e1b06 100644
>> > --- a/lib/igt_aux.h
>> > +++ b/lib/igt_aux.h
>> > @@ -90,4 +90,10 @@ void intel_require_memory(uint32_t count, uint32_t size, unsigned mode);
>> > #define min(a, b) ((a) < (b) ? (a) : (b))
>> > #define max(a, b) ((a) > (b) ? (a) : (b))
>> >
>> > +#define swap(a, b) do { \
>> > + typeof(a) _tmp = (a); \
>> > + (a) = (b); \
>> > + (b) = _tmp; \
>> > +} while (0)
>>
>> Nitpick, make the macro take pointers instead, and amend the cocci patch
>> accordingly? To a grumpy old C coder, swap(&a, &b) is so much more
>> obvious than swap(a, b)...
>
> But then it's different than the kernel swap() we all love.
Fair enough. I'll cry a little. I'll feel better soon.
>
>>
>> Jani.
>>
>>
>> > +
>> > #endif /* IGT_AUX_H */
>> > --
>> > 2.0.4
>> >
>> > _______________________________________________
>> > Intel-gfx mailing list
>> > Intel-gfx@lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>
>> --
>> Jani Nikula, Intel Open Source Technology Center
>
> --
> Ville Syrjälä
> Intel OTC
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-12-05 17:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-05 15:04 [PATCH i-g-t 1/3] lib: Add swap() macro ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 2/3] lib/igt.cocci: Deal with min/max/swap ville.syrjala
2014-12-05 15:04 ` [PATCH i-g-t 3/3] tests: Run lib/igt.cocci ville.syrjala
2014-12-05 16:44 ` [PATCH i-g-t 1/3] lib: Add swap() macro Jani Nikula
2014-12-05 17:06 ` Ville Syrjälä
2014-12-05 17:39 ` Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox