2013-03-23 11:10:10

by Kirill Tkhai

[permalink] [raw]
Subject: [PATCH] scripts/tags.sh: Add magic for OFFSET and DEFINE

Add rules for definitions which is generally used in asm-offsets files.

Signed-off-by: Kirill V Tkhai <[email protected]>
CC: Michal Marek <[email protected]>
CC: Andrew Morton <[email protected]>
---
scripts/tags.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/tags.sh b/scripts/tags.sh
index 26a87e6..74f02e4 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -199,7 +199,9 @@ exuberant()
--regex-c='/DEFINE_PER_CPU_SHARED_ALIGNED\(([^,]*,\s*)(\w*).*\)/\2/v/' \
--regex-c='/DECLARE_WAIT_QUEUE_HEAD\((\w*)/\1/v/' \
--regex-c='/DECLARE_(TASKLET|WORK|DELAYED_WORK)\((\w*)/\2/v/' \
- --regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/'
+ --regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/' \
+ --regex-c='/(^\s)OFFSET\((\w*)/\2/v/' \
+ --regex-c='/(^\s)DEFINE\((\w*)/\2/v/'

all_kconfigs | xargs $1 -a \
--langdef=kconfig --language-force=kconfig \


2013-03-26 21:35:34

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: Add magic for OFFSET and DEFINE

On Sat, Mar 23, 2013 at 02:58:20PM +0400, Kirill Tkhai wrote:
> Add rules for definitions which is generally used in asm-offsets files.
>
> Signed-off-by: Kirill V Tkhai <[email protected]>
> CC: Michal Marek <[email protected]>
> CC: Andrew Morton <[email protected]>
> ---
> scripts/tags.sh | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index 26a87e6..74f02e4 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -199,7 +199,9 @@ exuberant()
> --regex-c='/DEFINE_PER_CPU_SHARED_ALIGNED\(([^,]*,\s*)(\w*).*\)/\2/v/' \
> --regex-c='/DECLARE_WAIT_QUEUE_HEAD\((\w*)/\1/v/' \
> --regex-c='/DECLARE_(TASKLET|WORK|DELAYED_WORK)\((\w*)/\2/v/' \
> - --regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/'
> + --regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/' \
> + --regex-c='/(^\s)OFFSET\((\w*)/\2/v/' \
> + --regex-c='/(^\s)DEFINE\((\w*)/\2/v/'

The macro definitions in the asm-offsets.h file are ammended with a
comment explaining what the value actually means. So you see both the
value and the semantic of the macro:

#define TI_flags 16 /* offsetof(struct thread_info, flags) # */


By jumping to the asm-offset.c file instead, you would get only a subset
of that information.

OFFSET(TI_flags, thread_info, flags);

Unless I'm missing something, I don't think that this patch improves
much.

Michal

2013-03-27 12:05:41

by Kirill Tkhai

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: Add magic for OFFSET and DEFINE



27.03.2013, 01:35, "Michal Marek" <[email protected]>:
> On Sat, Mar 23, 2013 at 02:58:20PM +0400, Kirill Tkhai wrote:
>
>> ?Add rules for definitions which is generally used in asm-offsets files.
>>
>> ?Signed-off-by: Kirill V Tkhai <[email protected]>
>> ?CC: Michal Marek <[email protected]>
>> ?CC: Andrew Morton <[email protected]>
>> ?---
>> ??scripts/tags.sh | ???4 +++-
>> ??1 file changed, 3 insertions(+), 1 deletion(-)
>> ?diff --git a/scripts/tags.sh b/scripts/tags.sh
>> ?index 26a87e6..74f02e4 100755
>> ?--- a/scripts/tags.sh
>> ?+++ b/scripts/tags.sh
>> ?@@ -199,7 +199,9 @@ exuberant()
>> ??????????--regex-c='/DEFINE_PER_CPU_SHARED_ALIGNED\(([^,]*,\s*)(\w*).*\)/\2/v/' \
>> ??????????--regex-c='/DECLARE_WAIT_QUEUE_HEAD\((\w*)/\1/v/' \
>> ??????????--regex-c='/DECLARE_(TASKLET|WORK|DELAYED_WORK)\((\w*)/\2/v/' \
>> ?- --regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/'
>> ?+ --regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/' \
>> ?+ --regex-c='/(^\s)OFFSET\((\w*)/\2/v/' \
>> ?+ --regex-c='/(^\s)DEFINE\((\w*)/\2/v/'
>
> The macro definitions in the asm-offsets.h file are ammended with a
> comment explaining what the value actually means. So you see both the
> value and the semantic of the macro:
>
> #define TI_flags 16 /* offsetof(struct thread_info, flags) ?????# */
>
> By jumping to the asm-offset.c file instead, you would get only a subset
> of that information.
>
> OFFSET(TI_flags, thread_info, flags);
>
> Unless I'm missing something, I don't think that this patch improves
> much.

This patch does not annul definitions in asm-offsets.h. They stay still on their places.
It adds OFFSETs and DEFINEs from asm-offsets.c files.

When kernel is not precompiled you do not have asm-offsets.h and you are not
able to see what is the place offsets are defined for yor architecture.

Also, you are not able to look at other architectures because they do not have
precompiled asm-offsets.h.

I use ALLSOURCE_ARCHS=`ls arch/ | grep -v Kconfig` make tags to generate tags.
I thing some people do the same and sometimes they need offsets for another
architectures.

Kirill

2013-03-27 13:29:50

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: Add magic for OFFSET and DEFINE

On 27.3.2013 12:59, Kirill Tkhai wrote:
> 27.03.2013, 01:35, "Michal Marek" <[email protected]>:
>> The macro definitions in the asm-offsets.h file are ammended with a
>> comment explaining what the value actually means. So you see both the
>> value and the semantic of the macro:
>>
>> #define TI_flags 16 /* offsetof(struct thread_info, flags) # */
>>
>> By jumping to the asm-offset.c file instead, you would get only a subset
>> of that information.
>>
>> OFFSET(TI_flags, thread_info, flags);
>>
>> Unless I'm missing something, I don't think that this patch improves
>> much.
>
> This patch does not annul definitions in asm-offsets.h. They stay still on their places.
> It adds OFFSETs and DEFINEs from asm-offsets.c files.
>
> When kernel is not precompiled you do not have asm-offsets.h and you are not
> able to see what is the place offsets are defined for yor architecture.
>
> Also, you are not able to look at other architectures because they do not have
> precompiled asm-offsets.h.

I see, these are valid use cases for the regexps. I applied your patch
to kbuild.git#misc now.

Michal