Can't get Percona 5.6 to go into "waiting for server activity" state

For years we’ve been successfully taking LVM snapshots (actually SAN snapshots) on our MySQL 5.1 slave using the following scripted method:
[LIST=1]
[]stop slave;
[
]set global innodb_max_dirty_pages_pct = 0;
[]flush tables with read lock;
[
](wait for the server to go into “waiting for server activity” mode as seen in the “show engine innodb status” output)
[]LVM/SAN snapshot taken here
[
]unlock tables;
[]set global innodb_max_dirty_pages_pct = 90; (by default this is 90 in MySQL 5.1, but 75 in MySQL 5.6)
[
]start slave;
[/LIST]

We got the directions above from Andrew Atkinson’s post at the bottom of this article: [URL]http://dev.mysql.com/doc/refman/5.6/en/lock-tables.html[/URL]

So… We are now upgrading to 5.6 but we have the following problem: Step 4 above never happens. It only goes to the generic “sleeping” state. I have never been able to quiesce the 5.6 server enough to see the “waiting for server activity” state. Is that still a valid state in Percona 5.6? I googled for an hour and could not find any solid info on that.

Can we safely change Step 4 to look for the global status of “innodb_buffer_pool_pages_dirty” to go down to 0 instead?

No responses? Is anyone here quiescing 5.6 to do LVM or SAN based snapshots on a “live” system? If so, how do you “quiesce” mysql 5.6?

This is what I understand from the source code… When master thread has no tasks to do, it enters the “sleeping” mode. On that mode it waits one second and then checks again if there is something to do. Then, go back to “sleeping”. I guess from that code that you won’t see “waiting for server activity”. Checking innodb_buffer_pool_pages_dirty but you really need to do some restore tests to check if everything is correct.

/******************************************************************//
Puts master thread to sleep. At this point we are using polling to
service various activities. Master thread sleeps for one second before
checking the state of the server again /
static
void
srv_master_sleep(void)
/
==================
/
{
srv_main_thread_op_info = “sleeping”;
os_thread_sleep(1000000);
srv_main_thread_op_info = “”;
}