Search Results

Search found 13974 results on 559 pages for 'include'.

Page 320/559 | < Previous Page | 316 317 318 319 320 321 322 323 324 325 326 327  | Next Page >

  • I am a beginner to C and this is the dumbest question..Confused about getchar() function

    - by happysoul
    Sorry if I am not supposed to post beginner level questions here..I am new to this site Please read the code below first I am confused about getchar() 's role in the following code.. I mean I know its helping me see the output window which will only be closed when I press enter key So getchar() is basically waiting for me to press enter and then reads a single character .. Now my question.. what is that single character this function is reading ?? I did not press any key from the keyboard for it to read Now when its not reading anything..why it does not give an error saying hey u didn't enter anything for me to read ..lol...(told u its a dumb question) #include <stdio.h> int main() { printf( "blah \n" ); getchar(); return 0; }

    Read the article

  • How to install wexpect?

    - by Justine
    Hello, I'm running 32-bit Windows XP and trying to have Matlab communicate with Cgate, a command line program. I'd like to make this happen using wexpect, which is a port of Python's module pexpect to Windows. I'm having trouble installing or importing wexpect though. I've put wexpect in the folder Lib, along with all other modules. I can import those other modules but just not wexpect. Commands I've tried include: import wexpect import wexpect.py python wexpect.py install python wexpect.py install --home=~ wexpect install Does anyone have anymore ideas?

    Read the article

  • JQuery PrettyPhoto/Lightbox with Loupe Magnifier

    - by thebluefox
    Morning gang, Right, I'm trying to crowbar a magnifier, like this one, into prettyPhoto (picked because the JS is nice). The trouble I'm having is initiating the loupe function when the prettyPhoto has loaded. If I include it in the prettyPhoto JS, it just gets itself into an endless loop, or doesn't get called at all. I've nearly got it working by putting a link next to the close button that calls the function inline, like so; <a href="#" onclick="$(\'.TB_Image\').loupe(); return false;">Magnify</a> The only problem here is that the return false doesn't work? It works when the call to loupe isn't in the onclick event though? Doing it this way does run the loupe function, but the homepage gets loaded so I don't know if it actually works or not. Has anyone got any sugestions at all? All help much appreciated!

    Read the article

  • Why does Java tell me my applet contains both signed and unsigned code?

    - by JohnCooperNZ
    My signed Java applet has been running fine until Java update 19. Now some but not all of our users on Java Update 19 report a java security message stating that our applet contains both signed and unsigned code. The process for creating our applet is as follows: 1: Clean and Build the applet project in Netbeans IDE. 2: Open the Applet jar file in WinRAR and add the required mysql JDBC driver .class files to the jar file. 3: Sign the applet jar file. Can someone please tell me how to determine what code is signed and what code is not signed in our applet? Is there a better way to include the mysql JDBC driver jar file in our applet other than copying the jar file contents into our applet jar file? Thanks

    Read the article

  • Entity Framework: How to bind related products

    - by Waheed
    I am using the following Linq query from p in Product.Include("ProductDetails.Colors") where p.ProductID.Equals(18) select p; And then using the result of this query to bind the GridView. The productDetails are bind to the grid fine, but the Colors are not bind. To bind colors i am using <%# Eval("Colors.CategoryName") %. Error is " Field or property with the name 'Colors.CategoryName' was not found on the selected data source." But in a loop i am getting this fine. foreach (ProductDetails proDet in pd.ProductDetails) { string bar = proDet.BarCode; string color = proDet.Colors.CategoryName; }

    Read the article

  • Sonar maven integration

    - by Tom
    I have followed the directions to integrate Sonar with Maven (http://docs.codehaus.org/display/SONAR/Install+Sonar) - altered settings.xml to include sonar repository at http: //localhost:9000/deploy/maven and I have verified I am able to see the readme.txt file at http: //localhost:9000/deploy/maven/README.txt, but when running sonar:sonar I keep getting the following message: [INFO] [sonar:sonar] [INFO] Sonar host: http: //localhost:9000 [INFO] Sonar version: 1.7 Downloading: http: //localhost:9000/deploy/maven/org/codehaus/sonar/runtime/sonar -core-maven-plugin/20090803213910/sonar-core-maven-plugin-20090803213910.pom Downloading: http: //:8081/nexus/content/groups/public/org/codehaus/ sonar/runtime/sonar-core-maven-plugin/20090803213910/sonar-core-maven-plugin-200 90803213910.pom [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Can not execute Sonar Embedded error: Unable to build project for plugin 'org.codehaus.sonar.runtime:s onar-core-maven-plugin': POM 'org.codehaus.sonar.runtime:sonar-core-maven-plugin ' not found in repository: Unable to download the artifact from any repository org.codehaus.sonar.runtime:sonar-core-maven-plugin:pom:20090803213910 from the specified remote repositories: sonar (http: //localhost:9000/deploy/maven), nexus (http: //:8081/nexus/content/groups/public), for project org.codehaus.sonar.runtime:sonar-core-maven-plugin [INFO] ------------------------------------------------------------------------ Any idea what I am missing?

    Read the article

  • Jmesa table page navigation

    - by Sara
    I am new to Jmesa and am trying to use it on my jsp page. I use exactly same JSP and controller code as the example on http://code.google.com/p/jmesa/wiki/JSPTagExample . The table shows up and looks fine. The problem is non of the buttons on the toolbar are working. E.g. page navigation arrows, etc. What might be wrong with my code( As I said it is exactly same as the example). Should I add extra code for page navigation? Thanks, Sara. Update: I found out what the problem is, after I enter toolbar buttons it routes to "localhost:8080/portal/projectTag.run?maxRows=4&projectTag_tr_=true&projectTag_p_=1&projectTag_mr_=4" "Instead of "localhost:8080/portal/page/projects/projectTag.run?maxRows=4&projectTag_tr_=true&projectTag_p_=1&projectTag_mr_=4" So it doesn't include the "/page/projects" in the url. How can I add that?

    Read the article

  • gem2rpm includes all dependencies instead of including only runtime dependencies

    - by prunio
    Version 0.6.0 of gem2rpm includes all (development and runtime) dependencies for a given Gem. Example: Rack Gem (http://rubygems.org/gems/rack) Version 1.1.0 has no runtime dependencies, but six development dependencies. Console output of gem2rpm --dependencies rack-1.0.1.gem is: rubygem(test-spec) = 0 rubygem(camping) = 0 rubygem(fcgi) = 0 rubygem(memcache-client) = 0 rubygem(mongrel) = 0 rubygem(ruby-openid) = 2.0.0 rubygem(thin) = 0` How can I specify to only include runtime dependencies? I have also opened a ticket on rubyforge.org, but there isn't a lot of activity on that tracker. Thank you for any hints.

    Read the article

  • How to load jqtouch on-demand

    - by Jayson P.
    I'm trying to load jqtouch on-demand like so: <script type="text/javascript" src="js/jquery.js"</script <script type="text/javascript" $(function() { $.getScript("js/jqtouch.min.js", function() { $.jQTouch(); }); }); </script Firebug outputs: $(_3c.selector).tap is not a function If I include jqtouch.min.js in a script, like I did for jquery.js and call $.jQtouch, everything will work correctly. However, I'd like to load jqtouch only when I need to, however I can't seem to get it to work. I also tried doing an ajax post to jqtouch.min.js and received the same error.

    Read the article

  • Loading Separate Pages With Animation in JQTouch

    - by Donovan Keith
    I'm trying to convert a database-driven multiple-choice-style study website (written in JSP) into an iPhone app using JQTouch. If I load all of the Q&A's into their own divs in the same file I can easily link and animate between them using links to hashtags, like: a class="button" href="#question22" Unfortunately this isn't practical. The logic of the website as it currently works requires calls to a number of dynamically generated pages; I can't include every question in its own div in the same flat file. How would I go about dynamically (pre)loading the next question (a JSP page like AskQuestion.jsp?questionId=Kzhctand ) then serving that up within the app after the user presses a button? Thanks for any help you might offer. -Donovan

    Read the article

  • VS2010 Beta 2 > Setup Project > Prerequisites > Missing .NET 3.0

    - by Adam Kane
    Hello, In Visual Studio 2010 Beta 2, in a Setup project, in Prerequisites, there's no option to include the .NET Framework 3.0 prerequisite. How do I change things so that it is an available option? My goal is to create an .msi installer that is launched by a Setup.exe. The Setup.exe should install .NET 3.0 if it's not there. The application that I'm installing uses .NET 3.0 Note: I've tried clicking the "Check Microsoft Update for more redistributable components", but .NET 3.0 wasn't there. Thanks! Adam

    Read the article

  • mongo mapper with STI with more than one type?

    - by holden
    I have a series of models all which inherit from a base model Properties For example Bars, Restaurants, Cafes, etc. class Property include MongoMapper::Document key :name, String key :_type, String end class Bar < Property What I'm wondering is what to do with the case when a record happens to be both a Bar & a Restaurant? Is there a way for a single object to inherit the attributes of both models? And how would it work with the key :_type?

    Read the article

  • onload script does not work in subview page in JSF

    - by jackrobert
    Hi, Here i write two jsp page like outerPage.jsp and innerPage.jsp The outer page include innerPage.jsp The inner page have one textfield and one button.. I need focus for textFiled while page loading(innerPage.jsp).. I write a javascript, but not work it... The code is outerPage.jsp <%@page contentType="text/html" pageEncoding="UTF-8"% <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" % <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" % <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" % <%@ taglib uri="http://richfaces.org/rich" prefix="rich"% <f:view> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Outer Viewer</title> <meta name="description" content="Outer Viewer" /> </head> <body id="outerMainBody"> <rich:page id="richPage"> <rich:layout> <rich:layoutPanel position="center" width="100*"> <a4j:outputPanel> <f:verbatim><table style="padding: 5px;"><tbody><tr> <td> <jsp:include page="innerPage.jsp" flush="true"/> </td> </tr></tbody></table></f:verbatim> </a4j:outputPanel> </rich:layoutPanel> </rich:layout> </rich:page> </body> </f:view> innerPage.jsp <%@page contentType="text/html" pageEncoding="UTF-8"% <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" % <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" % <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" % <%@ taglib uri="http://richfaces.org/rich" prefix="rich"% <f:subview id="innerViewerSubviewId"> <f:verbatim><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Inner Viewer </title> <script type="text/javascript"> //This script does not called during the page loading (onload) function cursorFocus() { alert("Cursor Focuse Method called..."); document.getElementById("innerViewerForm:innerNameField").focus(); alert("Cursor Focuse method end!!!"); } </script> </head> <body onload="cursorFocus();"></f:verbatim> <h:form id="innerViewerForm"> <rich:panel id="innerViewerRichPanel"> <f:facet name="header"> <h:outputText value="Inner Viewer" /> </f:facet> <a4j:outputPanel id="innerViewerOutputPanel" > <h:panelGrid id="innerViewerSearchGrid" columns="2" cellpadding="3" cellspacing="3"> //<%-- Row 1 For Text Field --%> <h:outputText value="inner Name : " /> <h:inputText id="innerNameField" value=""/> //<%-- Row 2 For Test Button --%> <h:outputText value="" /> <h:commandButton value="TestButton" action="test" /> </h:panelGrid> </a4j:outputPanel> </rich:panel> </h:form> <f:verbatim></body></f:verbatim> </f:subview> <f:verbatim></html></f:verbatim> The cursorFocus script does not called... Here i need cursor focus for textFiled after display the page ... Thanks in advance.

    Read the article

  • Cygwin socket & thread & other programming issues (some question about Cygwin)

    - by SjB
    I have some question about cygwin : Can I use Cygwin develop socket based code? Does Cygwin have read() and write() functions that work with file descriptors? Can I use Pthread library in Cygwin? Does code that compiles in Cygwin also compile in Linux without any change or with little change? Will an executable file that built by Cygwin run in Linux ? Why does Cygwin not need the linker option -lpthread when I use pthread library? why in #include <iostream> don't I need to use using namespace std; ? Can I work with QT in Cygwin? If so, How?

    Read the article

  • Initializing a Global Struct in C

    - by Scott
    What is the best way to accomplish the following in C? #include <stdio.h> struct A { int x; }; struct A createA(int x) { struct A a; a.x = x; return a; } struct A a = createA(42); int main(int argc, char** argv) { printf("%d\n", a.x); return 0; } When I try to compile the above code, the compiler reports the following error: "initializer element is not constant" The bad line is this one: struct A a = createA(42); Can someone explain what is wrong? I'm not very experienced in C. Thanks!

    Read the article

  • Delphi 2010 Error Insight incorrectly flags "Undeclared Identifier"

    - by user257188
    In D2010, Error Insight is incorrectly underlining in red types like "TOpenDialog" (even though my unit and project's uses both include Dialogs). Also, in my method TMyFrame.Foo, it fails the same way by flagging a reference to a VCL component in my TMyFrame -- even though Foo and the component are both part of TMyFrame. SO suggested I read several threads on this subject. One mentions a D2009 fix for this. Is there a D2010 fix? Other postings have suggested that Error Insight yields too many false alarms and should just be turned off. Any suggestions?

    Read the article

  • Android - phone number contact format

    - by Daniel Benedykt
    Hi In Android I can get phone numbers of all the contacts without any problem. Tha problem is that for most users some numbers are stored as 'local' numbers, meaning that they dont have the country code included. For example, if the user lives in US and he has 2 contacts: 1) John - 555-123-1234 (local) (starting 1 not showing) 2) Jane - 44-123456787 (england phone number) The question is: How do I get all the numbers in an international format, when some of the numbers doesnt include the country code? Any way to figure that out? Thanks

    Read the article

  • Getting started with zxing on android

    - by amitlicht
    Hi I'm trying to add zxing to my project (add a button which calls the scanner upon press). I found this: http://groups.google.com/group/android-developers/browse_thread/thread/788eb52a765c28b5 and of course the zxing homesite: http://code.google.com/p/zxing/, but still couldn't figure out what to include in the project classpath to make it all work! as for now, I copied the classes in the first link to my project (with some package name changes), and it runs but crashes after pressing the button and trying to install the barcode scanner. some code: private void setScanButton(){ Button scan = (Button) findViewById(R.id.MainPageScanButton); scan.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { IntentIntegrator.initiateScan(MyActivity.this); } }); } resulting error (from logcat): 06-13 15:26:01.540: ERROR/AndroidRuntime(1423): Uncaught handler: thread main exiting due to uncaught exception 06-13 15:26:01.560: ERROR/AndroidRuntime(1423): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://search?q=pname:com.google.zxing.client.android } Ideas?

    Read the article

  • Slider control for mediaplayer using jquery

    - by Geetha
    Hi All, I want to create a slider control to control the video. When the video starts to play the slider has to start moving. If drag the slider to some other position the video has to play from that position. How to achieve this. Sample code: <script src="prototype.js" type="text/javascript"></script> <script src="slider.js" type="text/javascript"></script> var slider1 = new Control.Slider('handle1', 'track1', { animate: true, range: $R(0, document.mediaPlayer.SelectionEnd), max: document.mediaPlayer.SelectionEnd, min: 0, sliderValue: 5, startSpan: 'span1', onChange: function(v) { handleSliderChange(v); } }); function handleSliderChange(value) { document.mediaPlayer.currentPosition = value;} Problem: How to include the automatic move. the slider this working only when we move the handler.

    Read the article

  • Removing facebook API from my project

    - by mac_55
    I'm looking to remove the Facebook API from my iPhone project for 2 reasons: 1) My Facebook functionality is unfinished and I'd like to submit the app minus ALL of the FB functionality 2) I don't want to include the Facebook API as it contains encryption and I don't want to fill out additional forms etc. So. I need a simple way to remove all of my Facebook functionality and not put build the facebook API as part of the binary. I was thinking of commenting out my FB code... but how do I disconnect the FB api so that I can easily put it back in later? Thanks!

    Read the article

  • ClickOnce deployment error due to Microsoft.VisualStudio.Shell.Interop.9.0 Version9.0.0.0 missing fr

    - by user357695
    Hello all, I am developing a C# application in VS 2010 that is to be deployed via ClickOnce. However when I try to deploy the application on a client machine I get the following error: Unable to install or run the application. The application requires the assembly Microsoft.VisualStudio.Shell.Interop.9.0 Version 9.0.0.0 to be installed in the Global Assembly Cache (GAC) first. I have tried to include the missing assembly into the application files under Project Properties-Publish tab, but the error remains the same. Next I tried to add Microsoft.VisualStudio.Shell.Interop.9.0 to the project's references, but I cannot find it in the reference list. Does anyone have any tips or solutions to this problem. Thanks in advance.

    Read the article

  • java UnsatisfiedLinkError awt.image

    - by Allen
    I have a program that makes use of the following method to get a scaled instance of an image icon: public ImageIcon createScaledImageIcon(String filename) { ImageIcon icon = new ImageIcon(filename); Image image = icon.getImage().getScaledInstance(cardWidth, cardHeight, Image.SCALE_SMOOTH); icon.setImage(image); return icon; } I don't know if it's the source of the problem or not. But i get the following error messages: Exception in thread "Image Fetcher 0" java.lang.UnsatisfiedLinkError: sun.awt.image.ImageRepresentation.setBytePixels(IIII[BIILsun/awt/image/ByteComponentRaster;I)V at sun.awt.image.ImageRepresentation.setBytePixels(Native Method) at sun.awt.image.ImageRepresenation.setPixels(Unknown Source) at sun.awt.image.ImageDecoder.setPixels(Unknown Source) at sun.awt.image.GIFImageDecoder.sendPixels(Unknown Source) ... Let me know if there is any other information I could include that might be of use.

    Read the article

  • java.lang.UnsupportedClassVersionError: Bad version number in .class file?

    - by grmn.bob
    I am getting this error when I include an opensource library that I had to compile from source. Now, all the suggestions on the web indicate that the code was compiled in one version and executed in another version (new on old). However, I only have one version of JRE on my system. If I run the commands: $ javac -version javac 1.5.0_18 $ java -version java version "1.5.0_18" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02) Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode) and check in Eclipse for the properties of the java library, I get 1.5.0_18 Therefore, I have to conclude something else, internal to a class itself, is throwing the exception?? Is that even possible?

    Read the article

  • Parse an HTTP request Authorization header with Python

    - by Kris Walker
    I need to take a header like this: Authorization: Digest qop="chap", realm="[email protected]", username="Foobear", response="6629fae49393a05397450978507c4ef1", cnonce="5ccc069c403ebaf9f0171e9517f40e41" And parse it into this using Python: {'protocol':'Digest', 'qop':'chap', 'realm':'[email protected]', 'username':'Foobear', 'response':'6629fae49393a05397450978507c4ef1', 'cnonce':'5ccc069c403ebaf9f0171e9517f40e41'} Is there a library to do this, or something I could look at for inspiration? I'm doing this on Google App Engine, and I'm not sure if the Pyparsing library is available, but maybe I could include it with my app if it is the best solution. Currently I'm creating my own MyHeaderParser object and using it with reduce() on the header string. It's working, but very fragile. Brilliant solution by nadia below: import re reg = re.compile('(\w+)[=] ?"?(\w+)"?') s = """Digest realm="stackoverflow.com", username="kixx" """ print str(dict(reg.findall(s)))

    Read the article

  • CLSF & CLK 2013 Trip Report by Jeff Liu

    - by jamesmorris
    This is a contributed post from Jeff Liu, lead XFS developer for the Oracle mainline Linux kernel team. Recently, I attended both the China Linux Storage and Filesystem workshop (CLSF), and the China Linux Kernel conference (CLK), which were held in Shanghai. Here are the highlights for both events. CLSF - 17th October XFS update (led by Jeff Liu) XFS keeps rapid progress with a lot of changes, especially focused on the infrastructure/performance improvements as well as  new feature development.  This can be reflected with a sample statistics among XFS/Ext4+JBD2/Btrfs via: # git diff --stat --minimal -C -M v3.7..v3.12-rc4 -- fs/xfs|fs/ext4+fs/jbd2|fs/btrfs XFS: 141 files changed, 27598 insertions(+), 19113 deletions(-) Ext4+JBD2: 39 files changed, 10487 insertions(+), 5454 deletions(-) Btrfs: 70 files changed, 19875 insertions(+), 8130 deletions(-) What made up those changes in XFS? Self-describing metadata(CRC32c). This is a new feature and it contributed about 70% code changes, it can be enabled via `mkfs.xfs -m crc=1 /dev/xxx` for v5 superblock. Transaction log space reservation improvements. With this change, we can calculate the log space reservation at mount time rather than runtime to reduce the the CPU overhead. User namespace support. So both XFS and USERNS can be enabled on kernel configuration begin from Linux 3.10. Thanks Dwight Engen's efforts for this thing. Split project/group quota inodes. Originally, project quota can not be enabled with group quota at the same time because they were share the same quota file inode, now it works but only for v5 super block. i.e, CRC enabled. CONFIG_XFS_WARN, an new lightweight runtime debugger which can be deployed in production environment. Readahead log object recovery, this change can speed up the log replay progress significantly. Speculative preallocation inode tracking, clearing and throttling. The main purpose is to deal with inodes with post-EOF space due to speculative preallocation, support improved quota management to free up a significant amount of unwritten space when at or near EDQUOT. It support backgroup scanning which occurs on a longish interval(5 mins by default, tunable), and on-demand scanning/trimming via ioctl(2). Bitter arguments ensued from this session, especially for the comparison between Ext4 and Btrfs in different areas, I have to spent a whole morning of the 1st day answering those questions. We basically agreed on XFS is the best choice in Linux nowadays because: Stable, XFS has a good record in stability in the past 10 years. Fengguang Wu who lead the 0-day kernel test project also said that he has observed less error than other filesystems in the past 1+ years, I own it to the XFS upstream code reviewer, they always performing serious code review as well as testing. Good performance for large/small files, XFS does not works very well for small files has already been an old story for years. Best choice (maybe) for distributed PB filesystems. e.g, Ceph recommends delopy OSD daemon on XFS because Ext4 has limited xattr size. Best choice for large storage (>16TB). Ext4 does not support a single file more than around 15.95TB. Scalability, any objection to XFS is best in this point? :) XFS is better to deal with transaction concurrency than Ext4, why? The maximum size of the log in XFS is 2038MB compare to 128MB in Ext4. Misc. Ext4 is widely used and it has been proved fast/stable in various loads and scenarios, XFS just need more customers, and Btrfs is still on the road to be a manhood. Ceph Introduction (Led by Li Wang) This a hot topic.  Li gave us a nice introduction about the design as well as their current works. Actually, Ceph client has been included in Linux kernel since 2.6.34 and supported by Openstack since Folsom but it seems that it has not yet been widely deployment in production environment. Their major work is focus on the inline data support to separate the metadata and data storage, reduce the file access time, i.e, a file access need communication twice, fetch the metadata from MDS and then get data from OSD, and also, the small file access is limited by the network latency. The solution is, for the small files they would like to store the data at metadata so that when accessing a small file, the metadata server can push both metadata and data to the client at the same time. In this way, they can reduce the overhead of calculating the data offset and save the communication to OSD. For this feature, they have only run some small scale testing but really saw noticeable improvements. Test environment: Intel 2 CPU 12 Core, 64GB RAM, Ubuntu 12.04, Ceph 0.56.6 with 200GB SATA disk, 15 OSD, 1 MDS, 1 MON. The sequence read performance for 1K size files improved about 50%. I have asked Li and Zheng Yan (the core developer of Ceph, who also worked on Btrfs) whether Ceph is really stable and can be deployed at production environment for large scale PB level storage, but they can not give a positive answer, looks Ceph even does not spread over Dreamhost (subject to confirmation). From Li, they only deployed Ceph for a small scale storage(32 nodes) although they'd like to try 6000 nodes in the future. Improve Linux swap for Flash storage (led by Shaohua Li) Because of high density, low power and low price, flash storage (SSD) is a good candidate to partially replace DRAM. A quick answer for this is using SSD as swap. But Linux swap is designed for slow hard disk storage, so there are a lot of challenges to efficiently use SSD for swap. SWAPOUT swap_map scan swap_map is the in-memory data structure to track swap disk usage, but it is a slow linear scan. It will become a bottleneck while finding many adjacent pages in the use of SSD. Shaohua Li have changed it to a cluster(128K) list, resulting in O(1) algorithm. However, this apporoach needs restrictive cluster alignment and only enabled for SSD. IO pattern In most cases, the swap io is in interleaved pattern because of mutiple reclaimers or a free cluster is shared by all reclaimers. Even though block layer can merge interleaved IO to some extent, but we cannot count on it completely. Hence the per-cpu cluster is added base on the previous change, it can help reclaimer do sequential IO and the block layer will be easier to merge IO. TLB flush: If we're reclaiming one active page, we should first move the page from active lru list to inactive lru list, and then reclaim the page from inactive lru to swap it out. During the process, we need to clear PTE twice: first is 'A'(ACCESS) bit, second is 'P'(PRESENT) bit. Processors need to send lots of ipi which make the TLB flush really expensive. Some works have been done to improve this, including rework smp_call_functiom_many() or remove the first TLB flush in x86, but there still have some arguments here and only parts of works have been pushed to mainline. SWAPIN: Page fault does iodepth=1 sync io, but it's a little waste if only issue a page size's IO. The obvious solution is doing swap readahead. But the current in-kernel swap readahead is arbitary(always 8 pages), and it always doesn't perform well for both random and sequential access workload. Shaohua introduced a new flag for madvise(MADV_WILLNEED) to do swap prefetch, so the changes happen in userspace API and leave the in-kernel readahead unchanged(but I think some improvement can also be done here). SWAP discard As we know, discard is important for SSD write throughout, but the current swap discard implementation is synchronous. He changed it to async discard which allow discard and write run in the same time. Meanwhile, the unit of discard is also optimized to cluster. Misc: lock contention For many concurrent swapout and swapin , the lock contention such as anon_vma or swap_lock is high, so he changed the swap_lock to a per-swap lock. But there still have some lock contention in very high speed SSD because of swapcache address_space lock. Zproject (led by Bob Liu) Bob gave us a very nice introduction about the current memory compression status. Now there are 3 projects(zswap/zram/zcache) which all aim at smooth swap IO storm and promote performance, but they all have their own pros and cons. ZSWAP It is implemented based on frontswap API and it uses a dynamic allocater named Zbud to allocate free pages. Zbud means pairs of zpages are "buddied" and it can only store at most two compressed pages in one page frame, so the max compress ratio is 50%. Each page frame is lru-linked and can do shink in memory pressure. If the compressed memory pool reach its limitation, shink or reclaim happens. It decompress the page frame into two new allocated pages and then write them to real swap device, but it can fail when allocating the two pages. ZRAM Acts as a compressed ramdisk and used as swap device, and it use zsmalloc as its allocator which has high density but may have fragmentation issues. Besides, page reclaim is hard since it will need more pages to uncompress and free just one page. ZRAM is preferred by embedded system which may not have any real swap device. Now both ZRAM and ZSWAP are in driver/staging tree, and in the mm community there are some disscussions of merging ZRAM into ZSWAP or viceversa, but no agreement yet. ZCACHE Handles file page compression but it is removed out of staging recently. From industry (led by Tang Jie, LSI) An LSI engineer introduced several new produces to us. The first is raid5/6 cards that it use full stripe writes to improve performance. The 2nd one he introduced is SandForce flash controller, who can understand data file types (data entropy) to reduce write amplification (WA) for nearly all writes. It's called DuraWrite and typical WA is 0.5. What's more, if enable its Dynamic Logical Capacity function module, the controller can do data compression which is transparent to upper layer. LSI testing shows that with this virtual capacity enables 1x TB drive can support up to 2x TB capacity, but the application must monitor free flash space to maintain optimal performance and to guard against free flash space exhaustion. He said the most useful application is for datebase. Another thing I think it's worth to mention is that a NV-DRAM memory in NMR/Raptor which is directly exposed to host system. Applications can directly access the NV-DRAM via a memory address - using standard system call mmap(). He said that it is very useful for database logging now. This kind of NVM produces are beginning to appear in recent years, and it is said that Samsung is building a research center in China for related produces. IMHO, NVM will bring an effect to current os layer especially on file system, e.g. its journaling may need to redesign to fully utilize these nonvolatile memory. OCFS2 (led by Canquan Shen) Without a doubt, HuaWei is the biggest contributor to OCFS2 in the past two years. They have posted 46 upstream patches and 39 patches have been merged. Their current project is based on 32/64 nodes cluster, but they also tried 128 nodes at the experimental stage. The major work they are working is to support ATS (atomic test and set), it can be works with DLM at the same time. Looks this idea is inspired by the vmware VMFS locking, i.e, http://blogs.vmware.com/vsphere/2012/05/vmfs-locking-uncovered.html CLK - 18th October 2013 Improving Linux Development with Better Tools (Andi Kleen) This talk focused on how to find/solve bugs along with the Linux complexity growing. Generally, we can do this with the following kind of tools: Static code checkers tools. e.g, sparse, smatch, coccinelle, clang checker, checkpatch, gcc -W/LTO, stanse. This can help check a lot of things, simple mistakes, complex problems, but the challenges are: some are very slow, false positives, may need a concentrated effort to get false positives down. Especially, no static checker I found can follow indirect calls (“OO in C”, common in kernel): struct foo_ops { int (*do_foo)(struct foo *obj); } foo->do_foo(foo); Dynamic runtime checkers, e.g, thread checkers, kmemcheck, lockdep. Ideally all kernel code would come with a test suite, then someone could run all the dynamic checkers. Fuzzers/test suites. e.g, Trinity is a great tool, it finds many bugs, but needs manual model for each syscall. Modern fuzzers around using automatic feedback, but notfor kernel yet: http://taviso.decsystem.org/making_software_dumber.pdf Debuggers/Tracers to understand code, e.g, ftrace, can dump on events/oops/custom triggers, but still too much overhead in many cases to run always during debug. Tools to read/understand source, e.g, grep/cscope work great for many cases, but do not understand indirect pointers (OO in C model used in kernel), give us all “do_foo” instances: struct foo_ops { int (*do_foo)(struct foo *obj); } = { .do_foo = my_foo }; foo>do_foo(foo); That would be great to have a cscope like tool that understands this based on types/initializers XFS: The High Performance Enterprise File System (Jeff Liu) [slides] I gave a talk for introducing the disk layout, unique features, as well as the recent changes.   The slides include some charts to reflect the performances between XFS/Btrfs/Ext4 for small files. About a dozen users raised their hands when I asking who has experienced with XFS. I remembered that when I asked the same question in LinuxCon/Japan, only 3 people raised their hands, but they are Chris Mason, Ric Wheeler, and another attendee. The attendee questions were mainly focused on stability, and comparison with other file systems. Linux Containers (Feng Gao) The speaker introduced us that the purpose for those kind of namespaces, include mount/UTS/IPC/Network/Pid/User, as well as the system API/ABI. For the userspace tools, He mainly focus on the Libvirt LXC rather than us(LXC). Libvirt LXC is another userspace container management tool, implemented as one type of libvirt driver, it can manage containers, create namespace, create private filesystem layout for container, Create devices for container and setup resources controller via cgroup. In this talk, Feng also mentioned another two possible new namespaces in the future, the 1st is the audit, but not sure if it should be assigned to user namespace or not. Another is about syslog, but the question is do we really need it? In-memory Compression (Bob Liu) Same as CLSF, a nice introduction that I have already mentioned above. Misc There were some other talks related to ACPI based memory hotplug, smart wake-affinity in scheduler etc., but my head is not big enough to record all those things. -- Jeff Liu

    Read the article

< Previous Page | 316 317 318 319 320 321 322 323 324 325 326 327  | Next Page >