- Home ›
- Technology and Research ›
- Intel Technology Journal ›
- Intel® vPro™ Technology
Intel® vPro™ Technology
Extreme Programming with Intel® vPro™ Technology: Pushing the Limits with Innovative Software
Extreme Uses of Agent Presence
Agent Presence is the third function of Intel® Active Management Technology (Intel® AMT) that we discuss in this article. Many users first used Intel AMT to query the power state and turn a computer on and off remotely. However, this Intel AMT remote control feature has one important limitation: when a computer is powered on, it can only be abruptly powered off by using Intel AMT. This works fine when the computer is locked up, but if it is not locked up, data can be lost. Intel AMT cannot be used to make a computer go to sleep or hibernate, yet this is a feature that is often required. Since going to sleep and going into hibernation both involve the OS, it is unlikely that Intel AMT will ever be able to perform these operations independent of the OS in the future. In our research, however, we did come up with a partial solution. If a serial agent, such as Manageability Outpost, that is part of the DTK is running, the administrator can send a command to the serial agent instructing it to perform a sleep or hibernate operation. Thus an OOB command is sent to the agent, and the computer can then start saving power. This method works well, but it may be slow when scaling this operation to a large number of computers. Moreover, each agent must have control over the Intel AMT serial port—and only one serial port is available. Here is where a creative use of Agent Presence comes in.
Agent Presence is a feature intended to monitor the running of applications on a computer with the Intel vPro brand. The administrator places a specific Globally Unique Identifier (GUID) and a timeout, 30 seconds for example, into Intel AMT, and local applications signal Intel AMT by using this GUID, about every 15 seconds. If Intel AMT does not receive a signal, also called a heartbeat, in time, it assumes the application is no longer running and notifies the administrator.
Figure 5: Intel® AMT agent presence and management notification (Source: Intel Corporation)
Video and audio encoding are becoming increasingly important in the world of personal computing. Home-editing of videos and sound recordings are among the popular applications as is standard archiving of DVD material. As shown in Figure 7, the 45nm Intel Core 2 Extreme QX9650 provides a significant boost over previous-generation processors at the same frequency and platform configuration for some of the media-encoding applications. For example, Premiere* Pro CS3 software from Adobe is used to create high-quality visual and editorial effects; it allows users to add color correction, lighting, and other effects such as audio filters and more, with fast, flexible, built-in tools. As shown in Figure 7, the new Qx9650 is 20 percent faster than the Qx6850 in rendering 210 frames to the disk using this Adobe software. Fathom* is an advanced encoding platform product from Inlet Technologies that is used by media companies to encode content for streaming over the Internet or broadcasting over the air. As shown in Figure 7, Intel measures a 23-percent improvement with new 45nm processors for Fathom to transcode 1080i YV12 high-definition video (HDV) to a 1080i VC1 format. Intel measures a 40-percent improvement for Qx9650 over previous-generation technology for a Pegasys* TMPGenc XPress 4.4 encoder to convert original Variable Bit Rate encoded, 76 second, 29.97fps, 1440×1080 video clips into HDV format MPEG video with 1440×1080 resolution, 29.97fps, and 25000Kb s Constant Bit Rate encoding. Another example is VirtualDub* software, which is a video capture processing utility that uses the DivX* 6.7 software for encoding movies. VirtualDub* 1.7.1 and later with DivX 6.7 are optimized for SSE4 instructions and provide a very noticeable 60-percent performance gain over previous-generation processors that use encoding in SSE2 to convert to the higher-compression DivX format.
In Figure 5 the firewall software is stopped. After a few seconds Intel AMT notices that no signal was received from the firewall: it therefore adds a log entry into flash memory and notifies the administrator. Under normal circumstances, Agent Presence can be a useful tool to ensure computers are compliant with information technology (IT) policies and that they are running proper agent, firewall, and anti-virus software. However, in this enhanced usage, we used Agent Presence to pass a short integer-sized message to an OS agent and to get confirmation of receipt. To use Agent Presence in this way, you have to start by having the agent attempt to signal Intel AMT each 20 seconds by using a GUID that is not set within Intel AMT. Each time the agent attempts to perform the signaling, Intel AMT will report that this GUID does not exist. Under normal operations, the agent would then continue to attempt to signal Intel AMT, by using the GUID that does not exist. In a rare case where the administrator needs to send a short integer-sized message to the Intel vPro brand computer, the management console creates a GUID with a timeout value equal to the message, for example, 201 seconds. In this context, 201 is the number of the short integer message. The next time the agent signals Intel AMT, it will be successful, and the agent will receive a timeout value of 201 indicating what needs to be done. 201 can be designated hibernate, 202, sleep; 203, showdown, and so on. An interesting side effect of this technique is that Intel AMT will report the change in state as soon as the agent signals the correct GUID and obtains the short message. In this way, the administrator is notified of receipt of the short message and can remove the GUID from Intel AMT so the technique can be used again.
Guid WatchdogNotificationGuid = new Guid("C0770F68-9174-479b-87A5-A821FDFEF3C7");
ushort heartbeatTimeout;
AmtCallStatus r = AgentWatchdogRegister(agentID, out sessionSequenceNumber, out heartbeatTimeout);
if ((lastState == AmtCallStatus.INVALID_HANDLE ||
wg.lastState == AmtCallStatus.FAILED_WEB_CALL)
&& r == AmtCallStatus.SUCCESS)
{
// This is a notification, call a defined event
if (Notification != null) Notification(this, heartbeatTimeout);
}
lastState = r;
Figure 6: Sample C# notification detection code (Source: Intel Corporation)
In the code shown in Figure 6, we attempt to signal Intel AMT, expecting the signal to fail. If the signal does not fail when it has previously failed, a short message is received from the management console. The GUID used in the sample is the same one used by the DTK.
This technique allows vendors to create agents, compatible with Intel AMT, that can receive any short signal from an administrative tool that is using Intel AMT OOB, but one that doesn't require the use of the serial port. This creative use of Agent Presence scales better than the solution we described earlier, and its use can benefit software vendors who need to focus on power management.
