List:Commits« Previous MessageNext Message »
From:Christopher Powers Date:March 29 2011 12:46am
Subject:bzr commit into mysql-trunk branch (chris.powers:3274) WL#4896
View as plain text  
#At file:///home/cpowers/work/dev/mysql-trunk-wl4896/ based on revid:cpowers@tma-1-20110328233710-el7vs7os5f3xtw77

 3274 Christopher Powers	2011-03-28
      WL#4896 "Performance Schema Net IO"
      
      - Updates for code review II. Intermediate version.

    modified:
      include/mysql/psi/psi_abi_v1.h.pp
      include/mysql/psi/psi_abi_v2.h.pp
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/suite/perfschema/r/aggregate.result
      mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result
      mysql-test/suite/perfschema/r/start_server_innodb.result
      mysql-test/suite/perfschema/r/start_server_no_stage_class.result
      mysql-test/suite/perfschema/r/start_server_no_statement_class.result
      storage/perfschema/pfs.cc
=== modified file 'include/mysql/psi/psi_abi_v1.h.pp'
--- a/include/mysql/psi/psi_abi_v1.h.pp	2011-03-28 20:15:26 +0000
+++ b/include/mysql/psi/psi_abi_v1.h.pp	2011-03-29 00:46:15 +0000
@@ -10,10 +10,12 @@ struct PSI_thread;
 struct PSI_file;
 struct PSI_table_locker;
 struct PSI_statement_locker;
+struct PSI_socket;
 struct PSI_bootstrap
 {
   void* (*get_interface)(int version);
 };
+struct PSI_idle_locker;
 struct PSI_mutex_locker;
 struct PSI_rwlock_locker;
 struct PSI_cond_locker;
@@ -67,6 +69,28 @@ enum PSI_table_lock_operation
   PSI_TABLE_LOCK= 0,
   PSI_TABLE_EXTERNAL_LOCK= 1
 };
+enum PSI_socket_state
+{
+  PSI_SOCKET_STATE_IDLE= 1,
+  PSI_SOCKET_STATE_ACTIVE= 2
+};
+enum PSI_socket_operation
+{
+  PSI_SOCKET_CREATE= 0,
+  PSI_SOCKET_CONNECT= 1,
+  PSI_SOCKET_BIND= 2,
+  PSI_SOCKET_CLOSE= 3,
+  PSI_SOCKET_SEND= 4,
+  PSI_SOCKET_RECV= 5,
+  PSI_SOCKET_SENDTO= 6,
+  PSI_SOCKET_RECVFROM= 7,
+  PSI_SOCKET_SENDMSG= 8,
+  PSI_SOCKET_RECVMSG= 9,
+  PSI_SOCKET_SEEK= 10,
+  PSI_SOCKET_OPT= 11,
+  PSI_SOCKET_STAT= 12,
+  PSI_SOCKET_SHUTDOWN= 13
+};
 typedef unsigned int PSI_mutex_key;
 typedef unsigned int PSI_rwlock_key;
 typedef unsigned int PSI_cond_key;
@@ -74,6 +98,7 @@ typedef unsigned int PSI_thread_key;
 typedef unsigned int PSI_file_key;
 typedef unsigned int PSI_stage_key;
 typedef unsigned int PSI_statement_key;
+typedef unsigned int PSI_socket_key;
 struct PSI_mutex_info_v1
 {
   PSI_mutex_key *m_key;
@@ -116,6 +141,20 @@ struct PSI_statement_info_v1
   const char *m_name;
   int m_flags;
 };
+struct PSI_socket_info_v1
+{
+  PSI_socket_key *m_key;
+  const char *m_name;
+  int m_flags;
+};
+struct PSI_idle_locker_state_v1
+{
+  uint m_flags;
+  struct PSI_thread *m_thread;
+  ulonglong m_timer_start;
+  ulonglong (*m_timer)(void);
+  void *m_wait;
+};
 struct PSI_mutex_locker_state_v1
 {
   uint m_flags;
@@ -208,6 +247,19 @@ struct PSI_statement_locker_state_v1
   ulonglong m_no_index_used;
   ulonglong m_no_good_index_used;
 };
+struct PSI_socket_locker_state_v1
+{
+  uint m_flags;
+  struct PSI_socket *m_socket;
+  struct PSI_thread *m_thread;
+  size_t m_number_of_bytes;
+  ulonglong m_timer_start;
+  ulonglong (*m_timer)(void);
+  enum PSI_socket_operation m_operation;
+  const char* m_src_file;
+  int m_src_line;
+  void *m_wait;
+};
 typedef void (*register_mutex_v1_t)
   (const char *category, struct PSI_mutex_info_v1 *info, int count);
 typedef void (*register_rwlock_v1_t)
@@ -222,6 +274,8 @@ typedef void (*register_stage_v1_t)
   (const char *category, struct PSI_stage_info_v1 **info, int count);
 typedef void (*register_statement_v1_t)
   (const char *category, struct PSI_statement_info_v1 *info, int count);
+typedef void (*register_socket_v1_t)
+  (const char *category, struct PSI_socket_info_v1 *info, int count);
 typedef struct PSI_mutex* (*init_mutex_v1_t)
   (PSI_mutex_key key, const void *identity);
 typedef void (*destroy_mutex_v1_t)(struct PSI_mutex *mutex);
@@ -231,6 +285,9 @@ typedef void (*destroy_rwlock_v1_t)(stru
 typedef struct PSI_cond* (*init_cond_v1_t)
   (PSI_cond_key key, const void *identity);
 typedef void (*destroy_cond_v1_t)(struct PSI_cond *cond);
+typedef struct PSI_socket* (*init_socket_v1_t)
+  (PSI_socket_key key, const my_socket *fd);
+typedef void (*destroy_socket_v1_t)(struct PSI_socket *socket);
 typedef struct PSI_table_share* (*get_table_share_v1_t)
   (my_bool temporary, struct TABLE_SHARE *share);
 typedef void (*release_table_share_v1_t)(struct PSI_table_share *share);
@@ -290,6 +347,9 @@ typedef struct PSI_file_locker* (*get_th
 typedef struct PSI_file_locker* (*get_thread_file_descriptor_locker_v1_t)
   (struct PSI_file_locker_state_v1 *state,
    File file, enum PSI_file_operation op);
+typedef struct PSI_socket_locker* (*get_thread_socket_locker_v1_t)
+  (struct PSI_socket_locker_state_v1 *state,
+   struct PSI_socket *socket, enum PSI_socket_operation op);
 typedef void (*unlock_mutex_v1_t)
   (struct PSI_mutex *mutex);
 typedef void (*unlock_rwlock_v1_t)
@@ -298,6 +358,10 @@ typedef void (*signal_cond_v1_t)
   (struct PSI_cond *cond);
 typedef void (*broadcast_cond_v1_t)
   (struct PSI_cond *cond);
+typedef struct PSI_idle_locker* (*start_idle_wait_v1_t)
+  (struct PSI_idle_locker_state_v1 *state, const char *src_file, uint src_line);
+typedef void (*end_idle_wait_v1_t)
+  (struct PSI_idle_locker *locker);
 typedef void (*start_mutex_wait_v1_t)
   (struct PSI_mutex_locker *locker, const char *src_file, uint src_line);
 typedef void (*end_mutex_wait_v1_t)
@@ -380,6 +444,18 @@ typedef void (*set_statement_no_good_ind
   (struct PSI_statement_locker *locker);
 typedef void (*end_statement_v1_t)
   (struct PSI_statement_locker *locker, void *stmt_da);
+typedef void (*start_socket_wait_v1_t)
+  (struct PSI_socket_locker *locker, size_t count,
+   const char *src_file, uint src_line);
+typedef void (*end_socket_wait_v1_t)
+  (struct PSI_socket_locker *locker, size_t count);
+typedef void (*set_socket_state_v1_t)(struct PSI_socket *socket,
+                                      enum PSI_socket_state state);
+typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket,
+                                     const my_socket *fd,
+                                     const struct sockaddr *addr,
+                                     socklen_t addr_len);
+typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket);
 struct PSI_v1
 {
   register_mutex_v1_t register_mutex;
@@ -389,12 +465,15 @@ struct PSI_v1
   register_file_v1_t register_file;
   register_stage_v1_t register_stage;
   register_statement_v1_t register_statement;
+  register_socket_v1_t register_socket;
   init_mutex_v1_t init_mutex;
   destroy_mutex_v1_t destroy_mutex;
   init_rwlock_v1_t init_rwlock;
   destroy_rwlock_v1_t destroy_rwlock;
   init_cond_v1_t init_cond;
   destroy_cond_v1_t destroy_cond;
+  init_socket_v1_t init_socket;
+  destroy_socket_v1_t destroy_socket;
   get_table_share_v1_t get_table_share;
   release_table_share_v1_t release_table_share;
   drop_table_share_v1_t drop_table_share;
@@ -423,10 +502,13 @@ struct PSI_v1
   get_thread_file_name_locker_v1_t get_thread_file_name_locker;
   get_thread_file_stream_locker_v1_t get_thread_file_stream_locker;
   get_thread_file_descriptor_locker_v1_t get_thread_file_descriptor_locker;
+  get_thread_socket_locker_v1_t get_thread_socket_locker;
   unlock_mutex_v1_t unlock_mutex;
   unlock_rwlock_v1_t unlock_rwlock;
   signal_cond_v1_t signal_cond;
   broadcast_cond_v1_t broadcast_cond;
+  start_idle_wait_v1_t start_idle_wait;
+  end_idle_wait_v1_t end_idle_wait;
   start_mutex_wait_v1_t start_mutex_wait;
   end_mutex_wait_v1_t end_mutex_wait;
   start_rwlock_rdwait_v1_t start_rwlock_rdwait;
@@ -468,6 +550,11 @@ struct PSI_v1
   set_statement_no_index_used_t set_statement_no_index_used;
   set_statement_no_good_index_used_t set_statement_no_good_index_used;
   end_statement_v1_t end_statement;
+  start_socket_wait_v1_t start_socket_wait;
+  end_socket_wait_v1_t end_socket_wait;
+  set_socket_state_v1_t set_socket_state;
+  set_socket_info_v1_t set_socket_info;
+  set_socket_thread_owner_v1_t set_socket_thread_owner;
 };
 typedef struct PSI_v1 PSI;
 typedef struct PSI_mutex_info_v1 PSI_mutex_info;
@@ -477,11 +564,14 @@ typedef struct PSI_thread_info_v1 PSI_th
 typedef struct PSI_file_info_v1 PSI_file_info;
 typedef struct PSI_stage_info_v1 PSI_stage_info;
 typedef struct PSI_statement_info_v1 PSI_statement_info;
+typedef struct PSI_socket_info_v1 PSI_socket_info;
+typedef struct PSI_idle_locker_state_v1 PSI_idle_locker_state;
 typedef struct PSI_mutex_locker_state_v1 PSI_mutex_locker_state;
 typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state;
 typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state;
 typedef struct PSI_file_locker_state_v1 PSI_file_locker_state;
 typedef struct PSI_table_locker_state_v1 PSI_table_locker_state;
 typedef struct PSI_statement_locker_state_v1 PSI_statement_locker_state;
+typedef struct PSI_socket_locker_state_v1 PSI_socket_locker_state;
 extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
 C_MODE_END

=== modified file 'include/mysql/psi/psi_abi_v2.h.pp'
--- a/include/mysql/psi/psi_abi_v2.h.pp	2011-03-28 20:15:26 +0000
+++ b/include/mysql/psi/psi_abi_v2.h.pp	2011-03-29 00:46:15 +0000
@@ -10,10 +10,12 @@ struct PSI_thread;
 struct PSI_file;
 struct PSI_table_locker;
 struct PSI_statement_locker;
+struct PSI_socket;
 struct PSI_bootstrap
 {
   void* (*get_interface)(int version);
 };
+struct PSI_idle_locker;
 struct PSI_mutex_locker;
 struct PSI_rwlock_locker;
 struct PSI_cond_locker;
@@ -67,6 +69,28 @@ enum PSI_table_lock_operation
   PSI_TABLE_LOCK= 0,
   PSI_TABLE_EXTERNAL_LOCK= 1
 };
+enum PSI_socket_state
+{
+  PSI_SOCKET_STATE_IDLE= 1,
+  PSI_SOCKET_STATE_ACTIVE= 2
+};
+enum PSI_socket_operation
+{
+  PSI_SOCKET_CREATE= 0,
+  PSI_SOCKET_CONNECT= 1,
+  PSI_SOCKET_BIND= 2,
+  PSI_SOCKET_CLOSE= 3,
+  PSI_SOCKET_SEND= 4,
+  PSI_SOCKET_RECV= 5,
+  PSI_SOCKET_SENDTO= 6,
+  PSI_SOCKET_RECVFROM= 7,
+  PSI_SOCKET_SENDMSG= 8,
+  PSI_SOCKET_RECVMSG= 9,
+  PSI_SOCKET_SEEK= 10,
+  PSI_SOCKET_OPT= 11,
+  PSI_SOCKET_STAT= 12,
+  PSI_SOCKET_SHUTDOWN= 13
+};
 typedef unsigned int PSI_mutex_key;
 typedef unsigned int PSI_rwlock_key;
 typedef unsigned int PSI_cond_key;
@@ -74,6 +98,7 @@ typedef unsigned int PSI_thread_key;
 typedef unsigned int PSI_file_key;
 typedef unsigned int PSI_stage_key;
 typedef unsigned int PSI_statement_key;
+typedef unsigned int PSI_socket_key;
 struct PSI_v2
 {
   int placeholder;
@@ -98,6 +123,10 @@ struct PSI_file_info_v2
 {
   int placeholder;
 };
+struct PSI_idle_locker_state_v2
+{
+  int placeholder;
+};
 struct PSI_mutex_locker_state_v2
 {
   int placeholder;
@@ -122,6 +151,10 @@ struct PSI_statement_locker_state_v2
 {
   int placeholder;
 };
+struct PSI_socket_locker_state_v2
+{
+  int placeholder;
+};
 typedef struct PSI_v2 PSI;
 typedef struct PSI_mutex_info_v2 PSI_mutex_info;
 typedef struct PSI_rwlock_info_v2 PSI_rwlock_info;
@@ -130,11 +163,14 @@ typedef struct PSI_thread_info_v2 PSI_th
 typedef struct PSI_file_info_v2 PSI_file_info;
 typedef struct PSI_stage_info_v2 PSI_stage_info;
 typedef struct PSI_statement_info_v2 PSI_statement_info;
+typedef struct PSI_socket_info_v2 PSI_socket_info;
+typedef struct PSI_idle_locker_state_v2 PSI_idle_locker_state;
 typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state;
 typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state;
 typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state;
 typedef struct PSI_file_locker_state_v2 PSI_file_locker_state;
 typedef struct PSI_table_locker_state_v2 PSI_table_locker_state;
 typedef struct PSI_statement_locker_state_v2 PSI_statement_locker_state;
+typedef struct PSI_socket_locker_state_v2 PSI_socket_locker_state;
 extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
 C_MODE_END

=== modified file 'mysql-test/r/mysqld--help-notwin.result'
--- a/mysql-test/r/mysqld--help-notwin.result	2011-03-28 20:15:26 +0000
+++ b/mysql-test/r/mysqld--help-notwin.result	2011-03-29 00:46:15 +0000
@@ -460,6 +460,10 @@ The following options may be given as th
  Maximum number of rwlock instruments.
  --performance-schema-max-rwlock-instances=# 
  Maximum number of instrumented RWLOCK objects.
+ --performance-schema-max-socket-classes=# 
+ Maximum number of socket instruments.
+ --performance-schema-max-socket-instances=# 
+ Maximum number of opened instrumented sockets.
  --performance-schema-max-stage-classes=# 
  Maximum number of stage instruments.
  --performance-schema-max-statement-classes=# 
@@ -916,6 +920,8 @@ performance-schema-max-mutex-classes 200
 performance-schema-max-mutex-instances 1000000
 performance-schema-max-rwlock-classes 30
 performance-schema-max-rwlock-instances 1000000
+performance-schema-max-socket-classes 10
+performance-schema-max-socket-instances 1000
 performance-schema-max-stage-classes 100
 performance-schema-max-statement-classes 165
 performance-schema-max-table-handles 10000

=== modified file 'mysql-test/suite/perfschema/r/aggregate.result'
--- a/mysql-test/suite/perfschema/r/aggregate.result	2011-02-25 21:49:11 +0000
+++ b/mysql-test/suite/perfschema/r/aggregate.result	2011-03-29 00:46:15 +0000
@@ -71,6 +71,7 @@ GROUP BY EVENT_NAME
 HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT))
 OR @dump_all;
 EVENT_NAME	SUM_TIMER_WAIT	SUM(i.SUM_TIMER_WAIT)
+wait/io/socket/com/client_connection	0	16887000
 SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_TIMER_WAIT)
 FROM performance_schema.events_waits_summary_global_by_event_name AS e
 JOIN performance_schema.events_waits_summary_by_instance AS i USING (EVENT_NAME)
@@ -86,6 +87,7 @@ GROUP BY EVENT_NAME
 HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT))
 OR @dump_all;
 EVENT_NAME	MAX_TIMER_WAIT	MAX(i.MAX_TIMER_WAIT)
+wait/io/socket/com/client_connection	0	10950000
 "Verifying waits aggregate consistency (thread)"
 SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT)
 FROM performance_schema.events_waits_summary_global_by_event_name AS e
@@ -95,6 +97,7 @@ GROUP BY EVENT_NAME
 HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT))
 OR @dump_all;
 EVENT_NAME	SUM_TIMER_WAIT	SUM(t.SUM_TIMER_WAIT)
+wait/io/socket/com/client_connection	0	16887000
 SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_TIMER_WAIT)
 FROM performance_schema.events_waits_summary_global_by_event_name AS e
 JOIN performance_schema.events_waits_summary_by_thread_by_event_name AS t
@@ -112,6 +115,7 @@ GROUP BY EVENT_NAME
 HAVING (e.MAX_TIMER_WAIT < MAX(t.MAX_TIMER_WAIT))
 OR @dump_all;
 EVENT_NAME	MAX_TIMER_WAIT	MAX(t.MAX_TIMER_WAIT)
+wait/io/socket/com/client_connection	0	10950000
 update performance_schema.setup_consumers set enabled = 'YES';
 update performance_schema.setup_instruments
 set enabled = 'YES', timed = 'YES';

=== modified file 'mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result'
--- a/mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result	2011-03-28 20:15:26 +0000
+++ b/mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result	2011-03-29 00:46:15 +0000
@@ -18,30 +18,33 @@ ERROR 1050 (42S01) at line 180: Table 'e
 ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists
 ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists
 ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists
-ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists
-ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists
-ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists
-ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists
-ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists
-ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists
-ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists
-ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists
-ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists
-ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists
-ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 487: Table 'threads' already exists
-ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists
-ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists
-ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists
-ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists
-ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists
-ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists
-ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists
-ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists
-ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database.
+ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists
+ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists
+ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists
+ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists
+ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists
+ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists
+ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists
+ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists
+ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists
+ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists
+ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists
+ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists
+ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists
+ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 560: Table 'threads' already exists
+ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists
+ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists
+ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists
+ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists
+ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists
+ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists
+ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists
+ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists
+ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database.
 FATAL ERROR: Upgrade failed
 show tables like "user_table";
 Tables_in_performance_schema (user_table)
@@ -64,30 +67,33 @@ ERROR 1050 (42S01) at line 180: Table 'e
 ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists
 ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists
 ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists
-ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists
-ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists
-ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists
-ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists
-ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists
-ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists
-ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists
-ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists
-ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists
-ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists
-ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 487: Table 'threads' already exists
-ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists
-ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists
-ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists
-ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists
-ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists
-ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists
-ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists
-ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists
-ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database.
+ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists
+ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists
+ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists
+ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists
+ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists
+ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists
+ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists
+ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists
+ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists
+ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists
+ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists
+ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists
+ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists
+ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 560: Table 'threads' already exists
+ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists
+ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists
+ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists
+ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists
+ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists
+ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists
+ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists
+ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists
+ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database.
 FATAL ERROR: Upgrade failed
 show tables like "user_view";
 Tables_in_performance_schema (user_view)
@@ -108,30 +114,33 @@ ERROR 1050 (42S01) at line 180: Table 'e
 ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists
 ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists
 ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists
-ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists
-ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists
-ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists
-ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists
-ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists
-ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists
-ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists
-ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists
-ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists
-ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists
-ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 487: Table 'threads' already exists
-ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists
-ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists
-ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists
-ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists
-ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists
-ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists
-ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists
-ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists
-ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database.
+ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists
+ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists
+ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists
+ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists
+ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists
+ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists
+ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists
+ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists
+ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists
+ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists
+ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists
+ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists
+ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists
+ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 560: Table 'threads' already exists
+ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists
+ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists
+ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists
+ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists
+ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists
+ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists
+ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists
+ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists
+ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database.
 FATAL ERROR: Upgrade failed
 select name from mysql.proc where db='performance_schema';
 name
@@ -152,30 +161,33 @@ ERROR 1050 (42S01) at line 180: Table 'e
 ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists
 ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists
 ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists
-ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists
-ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists
-ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists
-ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists
-ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists
-ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists
-ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists
-ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists
-ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists
-ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists
-ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 487: Table 'threads' already exists
-ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists
-ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists
-ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists
-ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists
-ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists
-ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists
-ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists
-ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists
-ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database.
+ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists
+ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists
+ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists
+ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists
+ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists
+ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists
+ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists
+ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists
+ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists
+ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists
+ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists
+ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists
+ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists
+ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 560: Table 'threads' already exists
+ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists
+ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists
+ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists
+ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists
+ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists
+ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists
+ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists
+ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists
+ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database.
 FATAL ERROR: Upgrade failed
 select name from mysql.proc where db='performance_schema';
 name
@@ -196,30 +208,33 @@ ERROR 1050 (42S01) at line 180: Table 'e
 ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists
 ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists
 ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists
-ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists
-ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists
-ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists
-ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists
-ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists
-ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists
-ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists
-ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists
-ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists
-ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists
-ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists
-ERROR 1050 (42S01) at line 487: Table 'threads' already exists
-ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists
-ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists
-ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists
-ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists
-ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists
-ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists
-ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists
-ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists
-ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists
-ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database.
+ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists
+ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists
+ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists
+ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists
+ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists
+ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists
+ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists
+ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists
+ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists
+ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists
+ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists
+ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists
+ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists
+ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists
+ERROR 1050 (42S01) at line 560: Table 'threads' already exists
+ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists
+ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists
+ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists
+ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists
+ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists
+ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists
+ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists
+ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists
+ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists
+ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database.
 FATAL ERROR: Upgrade failed
 select name from mysql.event where db='performance_schema';
 name

=== modified file 'mysql-test/suite/perfschema/r/start_server_innodb.result'
--- a/mysql-test/suite/perfschema/r/start_server_innodb.result	2011-03-23 11:49:30 +0000
+++ b/mysql-test/suite/perfschema/r/start_server_innodb.result	2011-03-29 00:46:15 +0000
@@ -11,12 +11,12 @@ count(*)
 select count(*) from performance_schema.setup_consumers;
 count(*)
 11
-select count(*) > 2 from performance_schema.setup_instruments;
-count(*) > 2
+select count(*) > 3 from performance_schema.setup_instruments;
+count(*) > 3
 1
 select count(*) from performance_schema.setup_timers;
 count(*)
-3
+4
 select * from performance_schema.cond_instances;
 select * from performance_schema.events_stages_current;
 select * from performance_schema.events_stages_history;
@@ -37,6 +37,9 @@ select * from performance_schema.events_
 select * from performance_schema.file_instances;
 select * from performance_schema.file_summary_by_event_name;
 select * from performance_schema.file_summary_by_instance;
+select * from performance_schema.socket_instances;
+select * from performance_schema.socket_summary_by_instance;
+select * from performance_schema.socket_summary_by_event_name;
 select * from performance_schema.mutex_instances;
 select * from performance_schema.objects_summary_global_by_type;
 select * from performance_schema.performance_timers;
@@ -68,6 +71,8 @@ performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	5000
 performance_schema_max_rwlock_classes	30
 performance_schema_max_rwlock_instances	5000
+performance_schema_max_socket_classes	10
+performance_schema_max_socket_instances	1000
 performance_schema_max_stage_classes	100
 performance_schema_max_statement_classes	165
 performance_schema_max_table_handles	1000
@@ -90,6 +95,8 @@ Performance_schema_mutex_classes_lost	0
 Performance_schema_mutex_instances_lost	0
 Performance_schema_rwlock_classes_lost	0
 Performance_schema_rwlock_instances_lost	0
+Performance_schema_socket_classes_lost	0
+Performance_schema_socket_instances_lost	0
 Performance_schema_stage_classes_lost	0
 Performance_schema_statement_classes_lost	0
 Performance_schema_table_handles_lost	0

=== modified file 'mysql-test/suite/perfschema/r/start_server_no_stage_class.result'
--- a/mysql-test/suite/perfschema/r/start_server_no_stage_class.result	2011-03-23 11:49:30 +0000
+++ b/mysql-test/suite/perfschema/r/start_server_no_stage_class.result	2011-03-29 00:46:15 +0000
@@ -11,12 +11,12 @@ count(*)
 select count(*) from performance_schema.setup_consumers;
 count(*)
 11
-select count(*) > 2 from performance_schema.setup_instruments;
-count(*) > 2
+select count(*) > 3 from performance_schema.setup_instruments;
+count(*) > 3
 1
 select count(*) from performance_schema.setup_timers;
 count(*)
-3
+4
 select * from performance_schema.cond_instances;
 select * from performance_schema.events_stages_current;
 select * from performance_schema.events_stages_history;
@@ -37,6 +37,9 @@ select * from performance_schema.events_
 select * from performance_schema.file_instances;
 select * from performance_schema.file_summary_by_event_name;
 select * from performance_schema.file_summary_by_instance;
+select * from performance_schema.socket_instances;
+select * from performance_schema.socket_summary_by_instance;
+select * from performance_schema.socket_summary_by_event_name;
 select * from performance_schema.mutex_instances;
 select * from performance_schema.objects_summary_global_by_type;
 select * from performance_schema.performance_timers;
@@ -68,6 +71,8 @@ performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	5000
 performance_schema_max_rwlock_classes	30
 performance_schema_max_rwlock_instances	5000
+performance_schema_max_socket_classes	10
+performance_schema_max_socket_instances	1000
 performance_schema_max_stage_classes	0
 performance_schema_max_statement_classes	165
 performance_schema_max_table_handles	1000

=== modified file 'mysql-test/suite/perfschema/r/start_server_no_statement_class.result'
--- a/mysql-test/suite/perfschema/r/start_server_no_statement_class.result	2011-03-23 11:49:30 +0000
+++ b/mysql-test/suite/perfschema/r/start_server_no_statement_class.result	2011-03-29 00:46:15 +0000
@@ -11,12 +11,12 @@ count(*)
 select count(*) from performance_schema.setup_consumers;
 count(*)
 11
-select count(*) > 2 from performance_schema.setup_instruments;
-count(*) > 2
+select count(*) > 3 from performance_schema.setup_instruments;
+count(*) > 3
 1
 select count(*) from performance_schema.setup_timers;
 count(*)
-3
+4
 select * from performance_schema.cond_instances;
 select * from performance_schema.events_stages_current;
 select * from performance_schema.events_stages_history;
@@ -37,6 +37,9 @@ select * from performance_schema.events_
 select * from performance_schema.file_instances;
 select * from performance_schema.file_summary_by_event_name;
 select * from performance_schema.file_summary_by_instance;
+select * from performance_schema.socket_instances;
+select * from performance_schema.socket_summary_by_instance;
+select * from performance_schema.socket_summary_by_event_name;
 select * from performance_schema.mutex_instances;
 select * from performance_schema.objects_summary_global_by_type;
 select * from performance_schema.performance_timers;
@@ -68,6 +71,8 @@ performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	5000
 performance_schema_max_rwlock_classes	30
 performance_schema_max_rwlock_instances	5000
+performance_schema_max_socket_classes	10
+performance_schema_max_socket_instances	1000
 performance_schema_max_stage_classes	100
 performance_schema_max_statement_classes	0
 performance_schema_max_table_handles	1000

=== modified file 'storage/perfschema/pfs.cc'
--- a/storage/perfschema/pfs.cc	2011-03-28 23:37:10 +0000
+++ b/storage/perfschema/pfs.cc	2011-03-29 00:46:15 +0000
@@ -4639,7 +4639,7 @@ static void end_socket_wait_v1(PSI_socke
   }
 
   register uint flags= state->m_flags;
-  size_t bytes= (byte_count > -1 ? byte_count : 0);
+  size_t bytes= ((int)byte_count > -1 ? byte_count : 0);
   
   /** Aggregation for EVENTS_WAITS_SUMMARY_BY_INSTANCE */
   if (flags & STATE_FLAG_TIMED)


Attachment: [text/bzr-bundle] bzr/chris.powers@oracle.com-20110329004615-462t7fk7gmxoq40b.bundle
Thread
bzr commit into mysql-trunk branch (chris.powers:3274) WL#4896Christopher Powers29 Mar