On Jan 15, 2014, at 3:22 AM, Igor Galić <i.ga...@brainsware.org> wrote:

> 
> 
> ----- Original Message -----
>> Updated Branches:
>>  refs/heads/master ba44a77af -> f057cdcca
>> 
>> 
>> TS-2495: reduce the size of HttpVCTableEntry
>> 
>> Reorder HttpVCTableEntry structure members to reduce the size from
>> 72 to 64 bytes on 64 bit platforms.
> 
> Two questions
> 
> * Does this have an impact on our ABI compatibility?

Nope.

> * Are there other data structures that could use this treatment?

I expect so. pahole(1) does the analysis, so it's probably possible to spend an 
afternoon finding them.

> 
> 
>> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/f057cdcc
>> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/f057cdcc
>> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/f057cdcc
>> 
>> Branch: refs/heads/master
>> Commit: f057cdccaa8beac782028f1a8086971d46b15f95
>> Parents: ba44a77
>> Author: James Peach <jpe...@apache.org>
>> Authored: Fri Jan 10 14:47:44 2014 -0800
>> Committer: James Peach <jpe...@apache.org>
>> Committed: Tue Jan 14 13:05:14 2014 -0800
>> 
>> ----------------------------------------------------------------------
>> CHANGES             |  2 ++
>> proxy/http/HttpSM.h | 14 +++++++-------
>> 2 files changed, 9 insertions(+), 7 deletions(-)
>> ----------------------------------------------------------------------
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/f057cdcc/CHANGES
>> ----------------------------------------------------------------------
>> diff --git a/CHANGES b/CHANGES
>> index 9cdcb1c..2c56ffd 100644
>> --- a/CHANGES
>> +++ b/CHANGES
>> @@ -1,6 +1,8 @@
>>                                                          -*- coding: utf-8
>>                                                          -*-
>> Changes with Apache Traffic Server 4.2.0
>> 
>> +  *) [TS-2495] Reduce the size of HttpVCTableEntry.
>> +
>>   *) [TS-2491] stop other esi plugin unit test programs after error.
>>    Author: Yu Qing <zhuangy...@taobao.com>
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/f057cdcc/proxy/http/HttpSM.h
>> ----------------------------------------------------------------------
>> diff --git a/proxy/http/HttpSM.h b/proxy/http/HttpSM.h
>> index 5cbfacb..ea76f9f 100644
>> --- a/proxy/http/HttpSM.h
>> +++ b/proxy/http/HttpSM.h
>> @@ -97,23 +97,20 @@ extern ink_mutex debug_sm_list_mutex;
>> struct HttpVCTableEntry
>> {
>>   VConnection *vc;
>> -  bool eos;
>>   MIOBuffer *read_buffer;
>>   MIOBuffer *write_buffer;
>>   VIO *read_vio;
>>   VIO *write_vio;
>>   HttpSMHandler vc_handler;
>>   HttpVC_t vc_type;
>> +  bool eos;
>>   bool in_tunnel;
>> };
>> 
>> -const int vc_table_max_entries = 4;
>> -
>> struct HttpVCTable
>> {
>> -
>> +  static const int vc_table_max_entries = 4;
>>   HttpVCTable();
>> -  HttpVCTableEntry vc_table[vc_table_max_entries];
>> 
>>   HttpVCTableEntry *new_entry();
>>   HttpVCTableEntry *find_entry(VConnection *);
>> @@ -121,11 +118,14 @@ struct HttpVCTable
>>   void remove_entry(HttpVCTableEntry *);
>>   void cleanup_entry(HttpVCTableEntry *);
>>   void cleanup_all();
>> -  bool is_table_clear();
>> +  bool is_table_clear() const;
>> +
>> +private:
>> +  HttpVCTableEntry vc_table[vc_table_max_entries];
>> };
>> 
>> inline bool
>> -HttpVCTable::is_table_clear()
>> +HttpVCTable::is_table_clear() const
>> {
>>   for (int i = 0; i < vc_table_max_entries; i++) {
>>     if (vc_table[i].vc != NULL) {
>> 
>> 
> 
> -- 
> Igor Galić
> 
> Tel: +43 (0) 664 886 22 883
> Mail: i.ga...@brainsware.org
> URL: http://brainsware.org/
> GPG: 8716 7A9F 989B ABD5 100F  4008 F266 55D6 2998 1641

Reply via email to