Bug #71303 Manual page on P_S build configuration does not provide enough details
Submitted: 5 Jan 2014 16:00 Modified: 3 Mar 2016 23:20
Reporter: Valeriy Kravchuk Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.6 OS:Any
Assigned to: Paul Dubois CPU Architecture:Any
Tags: build configuration, missing manual, performance_schema, PFS_GROUP_BUFFER_SYNC

[5 Jan 2014 16:00] Valeriy Kravchuk
Description:
This manual page, http://dev.mysql.com/doc/refman/5.6/en/performance-schema-build-configuration.html, mentions only two build time defines:

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DWITHOUT_PERFSCHEMA_STORAGE_ENGINE=1

While looking at the source code I see that some PERFORMANCE_SCHEMA related details (including instrumentation available) seem to depend on some other build time defines, that may be defined to different values:

UNIV_PFS_MUTEX
UNIV_PFS_RWLOCK
PFS_GROUP_BUFFER_SYNC

With all three above defined, for example, it looks like we may get additional instrumentation for individual InnoDB blocks' mutexes and rwlocks... This may be useful for cases like Bug #68079.

How to repeat:
Try to find something about PFS_GROUP_BUFFER_SYNC in the manual, like with Google search for the following:

site:dev.mysql.com PFS_GROUP_BUFFER_SYNC

Note zero hits, go cry or read the code.

Suggested fix:
Make sure all build time options/defines related to PERFORMANCE_SCHEMA are clearly documented in the manual, at http://dev.mysql.com/doc/refman/5.6/en/performance-schema-build-configuration.html or elsewhere.
[7 Jan 2014 12:24] Umesh Shastry
Hello Valeriy,

Thank you for the bug report.

Thanks,
Umesh
[3 Mar 2016 23:20] Paul Dubois
From the InnoDB developers:

UNIV_PFS_MUTEX  and  UNIV_PFS_RWLOCK:
Defined whenever the server is compiled with the -DWITH_PERFSCHEMA_STORAGE_ENGINE option.

PFS_GROUP_BUFFER_SYNC:
Disabled by default. The only way to enable it is by removing the line which defines PFS_SKIP_BUFFER_MUTEX_RWLOCK in storage/innobase/include/sync0sync.h. Seems to be no compiler flags to enable or disable the above mentioned symbol.